스프링 MVC의 예외처리
@ControllerAdvice 어노테이션
- 모든 컨트롤러에서 공통으로 사용하는 기능이 구현된 클래스에 적용하는 어노케이션이다.
- 대표적인 공통기능
* 예외처리
* 파라미터값 변환
@ExceptionHandler 어노테이션
- 예외처리를 담당하는 핸들러 메소드에 적용하는 어노테이션이다.
- 예시
@ExceptionHandler(예외클래스.class)
public String handle예외클래스(예외클래스 매개변수명) {
return "오류페이지이름";
}
* 컨트롤러에서 요청을 처리하다가 @ExceptionHandler에 지정한 예외가 발생하면 예외처리 메소드가 자동으로 실행된다.
* 예외처리 메소드는 매개변수로 발생한 예외객체를 전달 받을 수 있다.
* 예외처리 메소드가 반환하는 오류페이지(JSP)로 사용자의 요청을 내부이동시킨다.
- 예외처리 규칙
* 발생한 예외클래스와 일치하는 @ExceptionHandler(예외클래스.class) 정의가 있으면 해당 예외처리 메소드가 실행된다.
* 발생한 예외클래스와 일치하는 @ExceptionHandler(예외클래스.class) 정의가 없고,
@ExceptionHandler(부모예외클래스.class) 정의가 있으면 해당 예외처리 메소드가 실행된다.
* 발생한 예외클래스와 일치하는 @ExceptionHandler(예외클래스.class) 정의도 있고,
@ExceptionHandler(부모예외클래스.class) 정의도 있으면 더 구체적인 예외클래스가 지정된 예외처리 메소드가 실행된다.