본문 바로가기
카테고리 없음

스프링 exceptionHandler

by 흰색남자 2022. 11. 13.

RestControllerAdvice

@ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들에 AOP를 적용해 Controller 단에 적용하기 위해 고안된 어노테이션

 

클래스에 선언하면 되며, 모든 Controller에 대한, 전역적으로 발생할 수 있는 예외를 잡아서 처리할 수 있음.

 

 

RestControllerAdvice에 컨트롤러에서 발생하는 예외처리들을 명시해서 사용함.

 

 

 

 

주의사항/알아 둘 것

  • Controller, RestController에만 적용가능하다. (@Service같은 빈에서는 안됨.)
  • 리턴 타입은 자유롭게 해도 된다. (Controller내부에 있는 메서드들은 여러 타입의 response를 할 것이다. 해당 타입과 전혀다른 리턴 타입이어도 상관없다.)
  • @ExceptionHandler를 등록한 Controller에만 적용된다. 다른 Controller에서 NullPointerException이 발생하더라도 예외를 처리할 수 없다.
  • 메서드의 파라미터로 Exception을 받아왔는데 이것 또한 자유롭게 받아와도 된다.