본문 바로가기
김영한님 인강듣고/스프링 MVC

스프링 부트의 예외 처리 01

by doriver 2024. 8. 8.

BasicErrorController로 예외 처리

스프링 부트의 기본 설정은 오류 발생시 /error 를 오류 페이지로 요청
BasicErrorController가 이 경로를 기본으로 받는다. ( server.error.path 로 수정 가능, 기본 경로 /error )

 

HTTP요청의 Headers에 Accept가 application/json , text/html 에 따라
BasicErrorController에서 이미 처리하는 방식이 구현되어있음

( /error 동일한 경로를 처리하는 errorHtml() , error() 두 메서드 )

errorHtml()

@RequestMapping(produces = MediaType.TEXT_HTML_VALUE)

클라이언트 요청의 Accept 해더 값이 text/html 인 경우에는 errorHtml() 을 호출해서 view를 제공한다.

 

resources / templates / error / 500.html  이와같이 html파일만 만들어두면 예외 발생시 알아서 return해줌

error() 

그외 경우에 호출되고 
ResponseEntity 로 HTTP Body에 JSON 데이터를 반환한다.

 

BasicErrorController 는 HTML 페이지를 제공하는 경우에는 매우 편리
그런데 API 오류 처리는 매우 세밀하고 복잡
API 오류 처리는 뒤에서 설명할 @ExceptionHandler 를 사용하자.