@ControllerAdvice @ExceptionHandler
2022. 3. 20. 04:16
반응형
예외처리를 할 때
@ControllerAdivce를 사용하면 컨트롤러에서 발생하는 예외를 전역적으로 잡아낼 수 있다.
이후, 세부적인 예외케이스는 @ExceptionHandler를 사용한 메소드로 처리하면 된다.
따로 패키지를 분리해서 관리하면 편하다.
예외처리를 적용할 때는 servlet-context.xml에서 component-scan으로 등록해주면 된다.
@RestControllerAdvice라는 것도 있는데, @ControllerAdvice 와 @ResponseBody를 합친 것이다.
@ControllerAdvice가 뷰를 반환하는 것처럼 @RestControllerAdvice는 응답형태를 JSON/XML 형태로 받을 수 있다.
@Controller가 예외 발생하더라도 @RestControllerAdvice가 잡아낼 수 있고
@RestController가 예외 발생하더라도 @ControllerAdvice가 잡아낼 수 있다.
@RestControllerAdvice의 차이점은 응답형태 뿐이기 때문이다.
특정한 클래스만을 예외처리하고 싶다면
@RestControllerAdvice(annotations = RestController.class) 처럼 사용할 수 있다.
반응형
'BE > Spring' 카테고리의 다른 글
스프링에서 에러페이지 보여주기 (0) | 2022.03.20 |
---|---|
Spring Security 커스텀 시 고려사항 (0) | 2022.03.20 |
@DateTimeFormat 과 @JsonFormat (0) | 2022.03.14 |
Quartz Scheduler 쓸 때 실행된 job이 서버를 중단해도 안 죽어 (0) | 2022.03.06 |
url 뒤에 .json이 왜 안되는 거야? (0) | 2022.02.20 |