@ControllerAdvice와 @ExceptionHandler
spring에서는 @ControllerAdvice와 @ExceptionHandler를 활용하면 애플리케이션 전반에서 발생하는 예외를 한 곳에서 처리할 수 있다. 이것을 예외처리 핸들러라고 한다.
1) @ControllerAdvice란?
- 모든 컨트롤러에서 발생하는 예외를 전역적으로 처리할 수 있도록 도와주는 어노테이션
- 여러 개의 컨트롤러에서 공통으로 예외 처리를 하고 싶을 때 사용
- 일반적으로 @ExceptionHandler와 함께 사용
- @RestControllerAdvice는 @ControllerAdvice + @ResponseBody(JSON 응답) 역할을 함.
2) @ExceptionHandler란?
- 특정 예외가 발생했을 때 실행될 메서드를 지정하는 어노테이션
- 개별 컨트롤러에서 사용할 수도 있고, @ControllerAdvice 안에서 사용하면 전역 예외 처리기로 동작할 수도 있음.
스프링부트에서 예외처리를 할때 여러 예외를 만들고 핸들러를 사용하여 예외를 관리하는게 일반적이다.