인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

gusdn85554님의 프로필 이미지
gusdn85554

작성한 질문수

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

HandlerExceptionResolver 활용

HandlerExceptionResolver 시작, 활용의 차이

작성

·

359

1

안녕하세요 영한님 서포터즈님들 

"HandlerExceptionResolver 시작"과 "HandlerExceptionResolver 활용" 강의에서 내용이 헷갈려 질문드립니다,,

"스프링 부트 - 오류 페이지 1, 2"에서 부터 말씀드려보겠습니다

 

스프링 부트 - 오류 페이지 1, 2

이 강의에서는 ExceptionResolver를 사용하지 않았기 때문에 예외가 WAS까지 던져집니다. 따라서 상태코드 500과 동시에 

dispatchservlet에서 에러 로그를 출력합니다.

 

HandlerExceptionResolver

MyHandlerExceptionResolver는 response.sendError를 통해 상태코드를 변경하고, WAS에 정상적인 응답을 내립니다 

하지만 정상적인 응답은 상태코드 500을 변경하기 위함이고, 앞과 비슷하게 BaseErrorController에서 /error를 호출하여 해당 응답을 내려줍니다

 

UserHandlerExceptionResolver

MyHandlerExceptionResolver + WAS까지 예외가 내려가지 않고 Resolver에서 처리합니다

 

제가 헷갈리는 이유가 response.sendError( ... ) 가 있으면 무조건 에러가 서블릿 컨테이너까지 내려가는건가요?? 제 생각에는 HttpServletResponse 에 sendError를 했기 때문에 해당 예외는 서블릿 컨테이너에서 처리할 것이라 생각합니다

 

제가 이해한 내용이 맞을까요,,?

감사합니다

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. gusdn85554님

HttpServletResponse에 sendError를 호출하고 반환하면 이후 서블릿 컨테이너에서 오류로 인지하고 오류 페이지를 호출하게 됩니다.

감사합니다.

gusdn85554님의 프로필 이미지
gusdn85554
질문자

감사합니다 !

gusdn85554님의 프로필 이미지
gusdn85554

작성한 질문수

질문하기