스프링 부트 기본 오류 처리
Last updated
Last updated
스프링부트는 기본적으로 오류 처리를 해주는 컨트롤러를 제공한다.
Accept 헤더 값이 text/html이면 호출해서 view를 제공한다.
그 외의 경우 호출된다.
responseEntity로 HTTP Body에 JSON 데이터를 반환한다.
즉, 스프링 부트는 기본적으로 오류가 발생하면 /error
로 오류 페이지를 요청한다. BasicErrorController는 이 경로를 기본으로 받도록 되어있으며, 기본 경로는 properties에서 server.error.path
로 수정 가능하다.
추가적인 오류 정보를 알기 위해 다양한 옵션을 추가할 수도 있다. 보안상 위험할 수 있으니 간결하게만 노출하고 로그를 통해 확인하자.
BasicErrorController를 확장하면 JSON 메시지 변경이 가능하다.
BasicErrorController는 HTML 페이지를 제공하는 경우는 편리하다.
하지만 API 오류 처리는 예외마다 각각 다른 응답을 던져줘야 할 수 있다.
예를 들어 회원 API와 상품 API의 예외 처리는 각자 다르다.
따라서 보통 @ExceptionHandler를 사용하는 게 더 편리하다.