학원 정리/스프링

스프링 MVC의 예외처리

csatlemin 2023. 1. 10. 22:34

@ControllerAdvice 어노테이션
    - 모든 컨트롤러에서 공통으로 사용하는 기능이 구현된 클래스에 적용하는 어노케이션이다.
    - 대표적인 공통기능
        * 예외처리
        * 파라미터값 변환

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