본문 바로가기

Spring/Exception Handling4

@ExceptionHandler 2023. 11. 6.
예외처리 ) API 예외 처리(미완료) 오류페이지를 보여주는 방식은 간단하다. 하지만 요즘은 프론트 단과 백엔드 단을 분리한다. 백엔드는 API만을 제공한다. 만약에 API 에서 오류가 발생하면 어떻게 처리해야할까? API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. 아래에 있는 api를 호출 해보자. html 오류 화면이 만들어진다. 클라이언트가 html 을 받아봐야 할수 있는 것은 없다. header에 Accept : application/json 을 넣어주고 이제 밑에 있는 api를 호출해보자 이제는 클라이언트가 사용 할수 있는 응답을 볼수있다. produces = MediaType.APPLICATION_JSON_VALUE 클라이언트가 요청하는 HTTP Header의 Accept 의 값이 ap.. 2023. 4. 25.
예외처리 ) 서블릿 컨테이너의 예외처리 2 - 오류 페이지 제공 스프링 부트를 통해서 서블릿 컨테이너를 실행하기 때문에, 스프링 부트가 제공하는 기능을 사용해서 서블릿 오류 페이지를 등록해 보자. Exception이 발생해서 서블릿 밖으로 전달되거나 또는 response.sendError()가 호출 되었을때 해당 오류 페이지를 보여줄 수 있다. 오류 페이지 제공 하기 Spring boot가 제공해주는 WebServerFactoryCustomizer 의 기능을 그냥 이용해주기만 하면 된다. 코드의 의미는 이렇다. 1. 404 에러 일때 errorPage404 호출 2. 500 에러 일때 errorPage500 호출 3. RuntimeException과 그 자식 타입 예외 일때 errorPageEx 호출 이렇게 만 해주면 끝이 아니다. 이제 오류를 호출 했을때 이것을 처.. 2023. 3. 27.
예외처리 ) 서블릿 컨테이너의 예외처리 1 순수 서블릿 컨테이너의 예외처리 애플리케이션에서 예외가 발생하면 try~catch로 잡아야하지만 예외를 잡지 못하고 서블릿 밖으로 까지 예외가 전달되면 어떻게 될까? 스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 일단 스프링 부트가 제공하는 기본 예외 페이지를 꺼둬야한다. 예외페이지를 안끄면 요런 페이지가 나온다. 순수 서블릿의 예외처리를 확인하기 위해서는 설정을 꺼야한다. 이제 설정을 껐다면 예외 처리를 어떻게 하는지 확인해보자. 총 2가지 방법으로 처리한다. 1. Exception(예외) tomcat이 기본으로 제공하는 오류 화면을 볼수있다. Exception 에러 처리 로직 예외가 발생하면 WAS 까지 전파 된다. 2. response.sendError(HTTP 상태 코드.. 2023. 3. 24.