2026.04.29
클라이언트 요청
-> Dispatcher Servlet (어떤 컨트롤러가 처리할 수 있지?)
-> Controller (API 매핑)
-> Service (비즈니스 로직 수행)
-> 예외 발생! (throw new OrderNotFoundException())
-> Controller 통과 (try-catch가 없어서 못 잡으니까)
-> Dispatcher Servlet (예외 수신 -> Resolver 호출)
-> Resolver (어떤 핸들러가 처리할 수 있지?)
-> GlobalExceptionHandler (예외 처리 -> 에러 응답 생성)
-> 클라이언트에게 바로 전송
DS가 들고 있는 Resolver 목록을 우선순위 순서대로 처리 가능 여부를 확인함.
ExceptionHandlerExceptionResolver (1순위)
@ExceptionHandler 붙은 메서드를 찾아서 실행@ControllerAdvice / @RestControllerAdvice 클래스 안에서 동작ResponseStatusExceptionResolver (2순위)
@ResponseStatus 어노테이션 달린 예외 처리DefaultHandlerExceptionResolver (3순위)
아무도 못 잡으면?
-> WAS(톰캣)로 올라가서 500 에러 페이지 출력