예외가 발생하면 WAS까지 예외가 던져지고, WAS에서 오류 페이지 정보를 찾아서 다시 /error
를 호출하는 과정이 너무 번잡하다.
📍ExceptionResolver
를 활용하면 예외가 발생했을때 이런 복잡한 과정없이 여기에서 문제를 깔끔하게 해결할수있다.
- 예시
( ExceptionResolver 클래스를 정의후 예외를 한번에 관리한다, Controller단 에서 예외가 발생하면 ModelAndView를 그냥 반환해준다)
: @ExceptionHandler
을 처리한다. API 예외처리는 대부분 이기능으로 해결한다.
HTTP 상태 코드를 지정해준다.
예 ) @ResponseStatus(value = HttpStatus.NOT_FOUND)
- 예시 (동적이게 사용할수는 없다) -- ResponseStatus
- 예시 (동적이게 사용, 예외를 바로 바인딩한다) -- ResponseStatusException
스프링의 내부 기본 예외를 처리한다.