예외처리 클래스 만들기[스프링 예외 처리]

2023. 3. 29. 14:52개발 공부/자바

개발을 하다 보면 에러 상태 코드는 무조건 접하게 된다.

그렇다면 에러 상태별로 내가 만든 화면으로 이동을 시키거나 내가 해주고 싶은 응답을 할 수 는 없을까?

 

당연히 있다. 클래스에 @ControllerAdvice 를 해주면 모든 클래스에서 예외가 발생했을때 해당 클래스가 실행된다.

이런식으로 @ControllerAdvice를 해주고 

@ExcptionHandler 메서드를 만들어 주면 되는데 ExcptionHandler에 에러 타입을 작성해주고 

ex) 예로들어 위에 보듯이 NullPointerException에러 발생시 저 메서드가 실행되는 것이다.

 

model.addAttribute("ex",ex); 로 jsp에 

에러 내용을 내가 만든 error.jsp 화면에서 보여 줄 수 있다.

 

@ResponseStatus()를 사용하여 에러 코드를 바꿀수 있다. 위에 사진에서는

에러예외 처리인데 메서드가 실행이 되어 상태코드는 200으로 뜨므로 응답코드를 200 -> 500으로 변경해 준 것 이다.

 

이러한 방법으로 예외 발생시 내가 원하는 방향으로 처리 할 수 있다.