기본 Error Handler

스프링 부트에는 기본적으로 error handler가 들어가 있다.

index페이지가 없을 때, localhost:8080으로 요청 시, 보이는 화면이 기본 error handler가 처리해준 결과이다.

기본 error handling 로직은 BasicErrorController에 들어있다.

@MVC 예외 처리 방법

Error를 테스트 하기 위해 Controller를 만들어준다.
Controller에서 /hello 요청이 왔을 때 Error를 던지게 한다.

SampleException이라는 클래스를 만들어 RuntimeException을 던지도록 해준다.(extends RuntimeException)

그 후, 이 앱에 특화되어 있는 error 정보를 담고 있는 커스텀 클래스를 만들어 준다.

컨트롤러에서 @ExceptionHandler를 사용하여 SampleException이 발생할 때 쓰는 error handler를 만들어준다.

그럼 /hello 요청을 하면 만들어준 error hanlder가 정상 작동함을 볼 수 있다.

이렇게 하면, 이 Exception Handler는 이 컨트롤러 안에서만 사용가능하다.

전역적으로 사용하고 싶으면 클래스를 따로 만들고, 그 클래스에 @ControllerAdvice를 붙이고, 그 안에 @ExceptionHandler를 정의하면, 여러 컨트롤러에서 사용할 수 있다.

커스텀 에러 페이지

error 발생 시, status 코드 값에 따라 다른 웹 페이지를 보여주는 것이다.

src - main - resources - static or templates 에 error라는 디렉토리를 만들고, '상태코드 값.html' 파일을 만들어준다.(상태 코드 값은 완전히 같게 하거나, 5xx 처럼 앞자리만 표시해줘도 된다.)

index 페이지가 없는상태로 root 호출을하면 404에러가 발생한다.

0개의 댓글