본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Servlet Exception, 서블릿 예외 처리 시작하기

by 오주현 2022. 2. 24.
반응형

서블릿 예외 처리 시작


강의는 항상 점진적으로 발전해온 루트를 따라가기 때문에 시작 부분에서 먼저 스프링이 아닌 순수 코드를 통해 공부를 했다.

 

서블릿은 Exception과 response.sendError(HTTP 상태 코드, 오류 메시지) 이 두 방식으로 예외 처리를 한다. 내부에서 오류가 발생하면 500으로 Exception을 사용하고 그게 아니라 직접 뭔가 담아서 처리하고 싶으면 response.sendError에 담아 처리하면 된다.

 

@GetMapping("/error-ex")
public void errorEx() {
    throw new RuntimeException("예외 발생!");
}

@GetMapping("/error-404")
public void error404(HttpServletResponse response) throws IOException {
    response.sendError(404, "404 오류 !");
}

@GetMapping("/error-500")
public void error500(HttpServletResponse response) throws IOException {
    response.sendError(500);
}

sendError의 흐름은 다음과 같다.

 

WAS ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러

 

response.sendError()를 호출하면 response 내부에 오류 발생 상태를 저장하고 서블릿 컨테이너가 고객 응답 전에 reponse에 sendError()가 호출되어있는지 확인한다. 호출이 되어 있다면 설정해둔 오류 코드에 맞춰 오류 페이지를 보여주게 된다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글