
예외가 발생해서 Servlet을 넘어 WAS까지 예외가 전달되면 HTTP 상태코드가 500으로 처리되도록 설계 했다고 가정해보자. 이 때 발생하는 예외에 따라서 400, 404등등 다른 상태코드도 처리하고 싶다. 예제)예를 들어 IllegalArgumentExcepti

예외가 발생하면 WAS까지 예외가 던져지고, WAS에서 오류 페이지 정보를 찾아서 다시 /error를 호출하는 과정은 생각해보면 너무 복잡하다. ExceptionResolver를 활용하면 예외가 발생했을 때 이러한 복잡한 과정 없이 ExceptionResolver에서

HandlerExceptionResolverComposite에 다음 순서로 등록1\. ExceptionHandlerExceptionResolver2\. ResponseStatusExceptionResolver3\. DefaultHandlerExceptionResolve
DefaultHandlerExceptionResolver는 스프링 내부에서 발생하는 스프링 예외를 해결한다.대표적으로 Parameter Binding 시점에 타입이 맞지 않으면 내부에서 TypeMismatchException을 발생하는데, 이 경우 예외가 발생했기 때문

웹 브라우저에 HTML 화면을 제공할 때는 오류가 발생하면 BasicErrorController를 사용하는게 편하다.이때는 단순히 5xx,4xx 관련된 오류 화면을 보여주면 된다. BasicErrorController는 이런 메커니즘을 모두 구현해 두었기 때문이다.하지
@ExceptionHandler를 사용해서 예외를 깔끔하게 처리할 수 있게 되었지만, 정상 코드와 예외 처리 코드가 하나의 컨트롤러에 섞여 있다.@ControllerAdvice 또는 @RestControllerAdvice를 사용하면 둘을 분리할 수 있다.@Control