← 질문 목록
#373깊이 0
@ControllerAdvice로 예외를 전역 처리하는 이유는?
프레임워크
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
컨트롤러마다 반복되는 예외 처리 코드를 분리하고 응답 형식을 통일하기 위해서다.
- 컨트롤러
그다음은 DispatcherServlet입니다. 예외 던짐
DispatcherServlet그다음은 ControllerAdvice입니다. ExceptionResolver가 적절한 핸들러 검색
ControllerAdvice그다음은 클라이언트입니다. 통일된 에러 응답 반환
클라이언트
각 컨트롤러에서 try-catch 문이나 @ExceptionHandler를 개별 작성하면 중복이 늘어난다. 전역 클래스 하나로 예외를 모으면 비즈니스 로직에만 집중하게 된다.
HandlerExceptionResolver가 예외 유형에 맞는 메서드를 탐색하여 실행한다. 클라이언트에게 일관된 에러 JSON 구조를 돌려주는 작업이 쉬워진다.
예기치 못한 시스템 예외까지 감싸지 못하면 500 응답이 노출된다. 최상위 Exception.class를 다루는 공통 핸들러를 함께 둔다.