강의

멘토링

커뮤니티

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

기팝님의 프로필 이미지
기팝

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@ExceptionHandler

UserException, DefaultHandlerExceptionResolver

작성

·

270

3

안녕하세요 복습 겸 다시 강의를 듣고있는데 

다시 들으니 새로운 질문 거리가 생겨서 질문드립니다.

 

1) 17:35분에 RuntimeException은 

UserException이 해결을 할수가 없어서

    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)

    @ExceptionHandler

    public ErrorResult exHandler(Exception e) {

       log.error("[exceptionHandler] ex", e);

       return new ErrorResult("EX", "내부 오류");

   }

이 실행 된다고 하셨는데

UserException 은  RuntimeException을 상속 하고있습니다.

 그래도 UserException은 RuntimeException을 해결을 할수가 없는건가요 ?

 

 

2) DefaultHandlerExceptionResolver은

errormessage를 따로 설정을 할순없는건가요 ?

 

 

 

 

답변 1

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 기팝님

 

1. 자바에서 타입을 할당하려면 부모 타입에 자식 타입은 할당할 수 있지만, 그 반대는 안됩니다. 이렇게 이해하시면 됩니다.

2. DefaultHandlerExceptionResolver는 스프링이 내부에서 이미 만들어둔 예외 처리기입니다. 따라서 메시지를 직접 처리하려면 이 클래스를 상속받아서 새로 등록하셔야 합니다.

이것보다는 @ExceptionHandler를 적절하게 잘 사용하시는 것이 더 나은 선택일 수 있습니다.

 

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

감사합니다

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기