[SPRING]예외처리
카테고리: SPRING
[14] 예외처리
14.1. 스프링에서의 예외 처리
- 컨트롤러 메서드 내에서 try/catch로 처리
- 컨트롤러에 @ExceptionHandler 메서드로 처리
- 예외처리를 위한 메서드를 작성하고 @ExceptionHandler를 설정
- @ControllerAdvice 클래스의 @ExceptionHandler 메서드가 처리
- 전역 예외 처리 클래스 작성
- 모든 컨트롤러에서 발생하는 예외를 처리할 수 있는 클래스
- @ExceptionHandler를 여러 컨트롤러에서 공유
- 한 컨트롤러에서만이 아닌 여러 컨트롤러에서 공유하는 ExceptionHandler를 갖는 컨트롤러 별도 생성
- 예외처리 메서드가 공통처리와 개별 컨트롤러 양쪽에 있는 경우
- 가까이 있는 @ExceptionHandler가 처리
- 공통처리하는 @ExcpetionHandler에서 하는 것과 다른 처리를 하고자 할 때 사용
- 각 개별 컨트롤러에서 다르게 처리
- 패키지 지정 가능
- 지정된 패키지에서 발생한 예외만 처리하게 설정
- 전역 예외 처리 클래스 작성
14.2. @ResponseStatus
- 예외 처리 메서드에 응답 메시지의 상태 코드를 변경할 때 사용
- 예외처리를 하면 200(성공)이 나옴
- 이것은 예외가 발생한 상황이므로 응답코드를 변경할 필요가 있음
- 4xx, 5xx 두 번호대로 변경해야 함
- 401, 403, 404(Not Found), 405…
- 500 (Internal Server Error), 501, 503(Service Unavailable)…
- 4xx, 5xx 두 번호대로 변경해야 함
- 일반 사용자가 500번대 화면을 보게 됨
=> 이에 대한 페이지를 별도로 준비해 사용자 친화적으로 바꿀 필요가 있음.- web.xml 에러페이지를 별도 저장/설정할 수 있음
댓글 남기기