Spring에서 예외처리를 할 때, @ExceptionHanlder
/ @ControllerAdvice
를 사용한다.
@ExceptionHanlder
- controller에서 @ExceptionHandler를 통해 메서드를 정의해 주면 에러 발생시 @ExceptionHandler가 적용된 메서드가 자동으로 호출된다.
- @ExceptionHandler가 적용된 메서드가 반환하는 jsp 정보를 통해 응답결과 화면을 만들고 이 응답결과를 브라우저로 전달한다.
- 이때 사용하는 jsp를 에러 페이지용으로 만들어주면 된다.
- @ExceptionHanlder는 해당 controller 내에서 발생되는 에러만 처리한다.
- controller마다 만들어주어야 한다.
@ControllerAdvice
- Global Exception Handler
- 모든 controller에서 발생되는 에러를 처리한다.
- controller마다 공통적으로 발생하는 예외라면 한 번만 정의해서 사용하는 것이 효율적이다.
- @ExceptionHandler로 정의한 처리가 우선 적용된다.
reference by 윤재성의 만들면서 배우는 Spring MVC 5