스프링에서는 어노테이션을 기반으로 ExceptionResolver를 활용하여 API 예외처리를 한다. 스프링 부트가 제공하는 ExceptionResolver는 다음과 같다. ( 위에서부터 우선순위가 높은 ExceptionResolver이다.) ExceptionHandlerExceptionResolver ResponseStatusExceptionResolver DefaultHandlerExceptionResolver ExceptionHandlerExceptionResolver @ExceptionHandler 어노테이션을 찾아 해당 메서드에 작성된 예외 처리를 진행한다. 대부분의 API 예외처리는 이 기능으로 해결한다. @ExceptionHandler 앞서 API예외처리에 있어서 HandlerExceptio..
발생하는 예외에 따라서 400, 404 등 상태코드를 다르게 정의하고 싶을 때는 어떻게 해야할까? ExceptionResolver를 사용하면 된다. ExceptionResolver ExceptionResolver는 말 그대로 컨트롤러(핸들러)에서 발생한 예외를 해결하는 역할을 한다. 앞서 예외를 보면 컨트롤러에서 예외가 발생하면 수 많은 단계를 거쳐 WAS까지 전달되게 되는데, 이 ExceptionResolver를 사용하게 되면 WAS까지 예외가 던져지지 않고 여기서 해결이 가능하다. ExceptionResolver를 사용하지 않으면 예외가 WAS까지 전달되어 WAS에서 서버 내부 오류로 인식해 500 상태코드를 전달하게 된다. 하지만, ExceptionResolver를 적용하면 예외를 Exception..