작성
·
359
1
안녕하세요 영한님 서포터즈님들
"HandlerExceptionResolver 시작"과 "HandlerExceptionResolver 활용" 강의에서 내용이 헷갈려 질문드립니다,,
"스프링 부트 - 오류 페이지 1, 2"에서 부터 말씀드려보겠습니다
이 강의에서는 ExceptionResolver를 사용하지 않았기 때문에 예외가 WAS까지 던져집니다. 따라서 상태코드 500과 동시에
dispatchservlet에서 에러 로그를 출력합니다.
MyHandlerExceptionResolver는 response.sendError를 통해 상태코드를 변경하고, WAS에 정상적인 응답을 내립니다
하지만 정상적인 응답은 상태코드 500을 변경하기 위함이고, 앞과 비슷하게 BaseErrorController에서 /error를 호출하여 해당 응답을 내려줍니다
MyHandlerExceptionResolver + WAS까지 예외가 내려가지 않고 Resolver에서 처리합니다
제가 헷갈리는 이유가 response.sendError( ... ) 가 있으면 무조건 에러가 서블릿 컨테이너까지 내려가는건가요?? 제 생각에는 HttpServletResponse 에 sendError를 했기 때문에 해당 예외는 서블릿 컨테이너에서 처리할 것이라 생각합니다
제가 이해한 내용이 맞을까요,,?
감사합니다
답변 1
0
안녕하세요. gusdn85554님
HttpServletResponse에 sendError를 호출하고 반환하면 이후 서블릿 컨테이너에서 오류로 인지하고 오류 페이지를 호출하게 됩니다.
감사합니다.
감사합니다 !