인프런 커뮤니티 질문&답변

공부맛있다님의 프로필 이미지
공부맛있다

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@ExceptionHandler

exception log 출력에 질문 있습니다.

해결된 질문

작성

·

88

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
실행 코드에 throw new RuntimeException()을 직접 던지게되면, 에러 로그가 자동으로 출력됩니다.

ExceptionHandler에서 에러를 제어할 때, 로깅을 하지 않으면 클라이언트 응답은 생성되지만 서버쪽에는 로그가 출력되지 않는것은 어떤 이유일까요?

ExceptionHandler에서 제어하지 않는 기본적인 예외들은 WAS까지 전파되어 WAS 내부의 로깅 시스템에 의해서 출력이 되고 ExceptionHandler가 제어하는 예외들은 내부적으로 response.sendError()를 호출해서 그런건가요..!?

답변 1

1

안녕하세요. 공부맛있다님, 공식 서포터즈 y2gcoder입니다.

말씀하신 것이 대체로 맞습니다.

ExceptionHandler는 쉽게 말씀드리자면 웹 요청 중 발생한 에러를 try-catch 문으로 잡은 것과 같습니다. catch 문에서 잡은 예외를 처리할 때 따로 로깅해주지 않으면 로깅되지 않습니다. 이와 같이 ExceptionHandler에서 잡은 예외는 해당 로직에서 처리해버리고 다시 던지지 않습니다.

실행코드 어디서 RuntimeException을 던지셨는지는 모르겠으나, ExceptionHandler나 try-catch문으로 잡지 않고 던져진 예외는 배우셨던 것과 같이 처리되는 것이 맞습니다 🙂

 

감사합니다.

감사합니다 :)

공부맛있다님의 프로필 이미지
공부맛있다

작성한 질문수

질문하기