728x90
@ExceptionHandler
WelcomeController 클래스에 있는 두 메서드는 모두 @ExceptionHandler
어노테이션을 붙였습니다. 첫 번째 handle
메서드는 CustomException 예외 처리 전용 메서드이며, 두 번째 handleDefault
메서드는 일반 예외 처리 메서드 역할을 합니다. 두 메서드 모두 에러 상황에 따라 맞는 렌더링 할 뷰 이름을 반환하고 있습니다.
@ExceptionHandler는 특정 컨트롤러 안에서 예외가 발생한 경우에만 예외를 매핑하는 문제점이 있습니다.
@Controller
public class WelcomeController {
@ExceptionHandler(CustomException.class)
public String handle(CustomException e) {
return "customException";
}
@ExceptionHandler()
public String handleDefault(Exception e) {
return "error";
}
}
@ControllerAdvice
@ControllerAdvice
어노테이션은 범용적인 예외 처리를 하는 클래스에 추가합니다. 클래스 레벨에 @ControllerAdvice 어노테이션을 추가하고, 각 예외 상황에 맞게 처리해야 하는 메서드에는 @ExceptionHandler 어노테이션을 추가합니다.
@ControllerAdvice
public class ExceptionHandlingAdvice {
@ExceptionHandler(CustomException.class)
public String handle(CustomException e) {
return "customException";
}
@ExceptionHandler()
public String handleDefault(Exception e) {
return "error";
}
}
'Spring' 카테고리의 다른 글
Spring 파일 업로드 구현 및 파일 크기 설정 (0) | 2019.07.26 |
---|---|
ServletContextListener 이벤트 처리 (0) | 2019.07.26 |
Thymeleaf 템플릿 엔진에서 로케일 텍스트 메시지 처리 (0) | 2019.07.25 |
Thymeleaf 에서 현재 로케일 값 출력하기 (0) | 2019.07.25 |
데이터 암호화를 위한 JPA Attribute Converter (0) | 2019.06.10 |
댓글