더북(TheBook)

다음은 앞의 코드를 실행한 결과입니다.

▲ 그림 10-8 실행 결과

Note ≣ | @ControllerAdvice 클래스 안에 있는 @ExceptionHandler와 컨트롤러 안에 있는 @ExceptionHandler가 선언된 메서드가 모두 있을 때 어떤 우선순위로 처리되나요?

@ControllerAdvice가 선언된 클래스 안에 있는 @ExceptionHandler가 선언된 메서드보다 컨트롤러에 선언된 @ExceptionHandler 메서드가 먼저 실행됩니다. 즉, 컨트롤러의 메서드를 실행하는 과정에서 예외가 발생하면 예외를 처리할 @ExceptionHandler가 선언된 메서드를 찾게 되기 때문입니다.

1. 같은 컨트롤러에 위치한 @ExceptionHandler가 선언된 메서드 중 해당 예외를 처리할 수 있는 메서드를 찾습니다.

2. 같은 컨트롤러에 위치한 메서드가 예외를 처리할 수 없는 경우 @ControllerAdvice가 선언된 클래스 안에 @ExceptionHandler가 선언된 메서드를 찾습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.