@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) 처럼 사용할 수 있다.

 

반응형

BELATED ARTICLES

more