• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

ExceptionResolver와 BasicErrorController의 분기점을 모르겠습니다.

22.04.30 01:35 작성 조회수 134

0

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

[질문 내용]

공통 상황

  • WAS -> Servlet -> Controller (예외 발생)
  • @ExceptionHandler를 사용한 API 예외 처리 애플리케이션
  • BasicErrorController를 사용한 HTML 오류 페이지 처리 애플리케이션

질문

Q1. BasicErrorController와 ExceptionResolver 모두 적용된 프로그램 흐름이 궁금합니다. ExceptionResolver와 BasicErrorController의 분기점을 모르겠습니다.

Q2. Accept: text/html HTTP 요청이 들어왔을 때, BasicErrorController는 내부 호출(WAS -> Servlet -> BasicErrorContoller)이 발생하는지, 아닌지 궁금합니다.

Q3. Accept: text/html HTTP 요청이 들어왔을 때, @ResponseStatus 값에 관계없이 무조건 500 HTML 에러 페이지를 반환하고 있습니다. @ExceptionHandler와 BasicErrorContoller의 조합이 어떻게 가능한지 모르겠습니다. 강의 코드에서 MyHandlerExceptionResolver를 없앴습니다.

감사합니다.

답변 2

·

답변을 작성해보세요.

0

olo pipi님의 프로필

olo pipi

질문자

2022.05.06

감사합니다.

첫번째 답변 보고 제가 무엇을 착각했는지 바로 알 수 있었습니다.

0

안녕하세요. olo pipi님

Q1: ExceptionResolver를 사용하면 이미 예외 처리가 완료되어버리기 때문에 서블릿 까지 오류가 올라가지 않습니다. BasicErrorController는 서블릿 까지 오류가 올라간 다음에 내려와야 동작합니다. 따라서 둘을 함께 사용하는 것은 아닙니다.

Q2: Q3: 예외 처리 부분을 다시 한번 복습하시길 바랍니다.

감사합니다.