@ExceptionHandler 핵심 정리
-
역할
- 컨트롤러 실행 중 예외 발생 시 → WAS로 넘기기 전에 잡아서 사용자 정의 처리 가능
-
어노테이션 위치
- 컨트롤러 클래스 내부
- 또는 전역 예외 처리용
@ControllerAdvice
클래스
-
동작 원리
- 컨트롤러에서 예외 발생 → 요청 처리 중단
- 해당 컨트롤러 내
@ExceptionHandler
메서드 탐색
- 없으면 →
@ControllerAdvice
전역 핸들러 탐색
- 예외 타입 일치 메서드 실행 → 응답(ResponseEntity 등) 반환
- 그래도 없으면 → 기본 Spring 에러 처리 흐름
-
장점
- 예외 처리 중앙 관리 → 가독성·유지보수 ↑
- 사용자 맞춤 응답 가능 (상태코드, 메시지)
- 일관된 에러 응답 제공
Spring이 ExceptionHandlerMethodResolver로 적절한 @ExceptionHandler 메서드를 찾아 실행하고, 덕분에 개발자는 예외를 로깅·커스텀 응답 등 원하는 방식으로 다룰 수 있게 됨.