인프런 커뮤니티 질문&답변

terecal님의 프로필 이미지
terecal

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

Spring AOP를 이용한 Exception Handling

에러 처리 클래스를 만들때 CustomizedResponseEnityExceptionHandler 를 상속받는 이유가 무엇인가요?

작성

·

225

0

에러 처리 클래스를 만들때 CustomizedResponseEnityExceptionHandler 를 상속받는 이유가 무엇인가요?

답변 3

0

@terecal 정확한 답변은 아니지만 여기 참고해보세요. 

https://blog.naver.com/PostView.naver?blogId=writer0713&logNo=221605253778&parentCategoryNo=&categoryNo=83&viewDate=&isShowPopularPosts=true&from=search

0

terecal님의 프로필 이미지
terecal
질문자

에러 처리를 위해 클래스를 만들때 ResponseEntityExceptionHandler 를 상속받지 않으면  아래의 코드에서 에러가 발생할수 있나여? 예를 들어  어노테이션을 사용할수 없게 된다거나 

@ExceptionHandler(Exception.class)

아래 함수로 인자값이 전달되지 않는다거나
public final ResponseEntity<Object> handleAllExceptions(Exception ex, WebRequest request) {
}
아래 ResponseEntity 함수를 사용할수 없게 된다거나 
return new ResponseEntity(exceptionResponse, HttpStatus.INTERNAL_SERVER_ERROR);

그런건가여?

무슨 목적으로 상속 설정이 필요한건지 잘이해가 안가요 답변해주신대로 클라이언트 요청에 대한
처리 과정에서 발생하는 오류를 적절하게 제어하기 위해서라면 상속받지 않고 아래 부분만 
적절하게 작성하면 되지 않는건가여? 혹시 오버라이딩을 위해 상속받은건가여?  유효성 검사 
에러 말고는 그대로 오버라이딩 하는건 아니지 않나여?

@ExceptionHandler(Exception.class)
public final ResponseEntity<Object> handleAllExceptions(Exception ex, WebRequest request) {

ExceptionResponse exceptionResponse =
new ExceptionResponse(new Date(), ex.getMessage(), request.getDescription(false));

return new ResponseEntity(exceptionResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

요청하신 질문이 "ResponseEntityExceptionHandler"클래스를 상속 받은 이유를 말씀하시는 건가요? 클라이언트 요청에 대한 처리 과정에서 발생하는 오류를 적절하게 제어하기 위해서 입니다. ExceptionHandler 클래스로 등록한 예외가 발생하면, 해당 예외를 처리하기 위한 메소드와 처리 오류 등을 반환하기 위한 객체로 사용됩니다. ResponseEntityExceptionHandler 클래스를 상속받지 않고 일반적인 예외 클래스로 구현하신 다음에 적절한 예외 상황에 따른 예외 객체를 반환해 됩니다.

감사합니다.

terecal님의 프로필 이미지
terecal

작성한 질문수

질문하기