사실 예외처리 로직 자체는 매우 공통적
필요한 곳에서 Error를 만들어서 던지고, 그 Error를 받는곳이 어디든
그 Error 내용을 담아서 클라이언트에 보내주면 됩니다.

@ControllerAdvice 사용
- Spring에서 예외처리를 위한 클래스 레벨 애너테이션
- 모든 Controller에서 발생한 예외를 처리하기 위해 사용됩니다.
- @ExceptionHandler메서드를 정의하여 예외를 처리하는 로직을 담을 수 있습니다.
@ControllerAdvice 사용하는 이유? :
1. 예외처리를 중앙 집중화하기 좋습니다.
2. Controller 예외처리 로직을 반복하지 않아도 됨
3. 예외 처리 로직을 모듈화 ( 관리하기 쉽다 ---> 개발 생산성을 향상시키는 것도 가능합니다.)
@RestControllerAdvice = @ControllerAdvice + @ResponseBody
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler({IllegalArgumentException.class})
public ResponseEntity<RestApiException> handleException(IllegalArgumentException ex) {
RestApiException restApiException = new RestApiException(ex.getMessage(), HttpStatus.BAD_REQUEST.value());
return new ResponseEntity<>(
// HTTP body
restApiException,
// HTTP status code
HttpStatus.BAD_REQUEST
);
}
}
'Spring' 카테고리의 다른 글
| Service 테스트 / Mock 초간단 요약. (0) | 2024.02.26 |
|---|---|
| Error 메시지 관리하기 + global 에 적용예시. (0) | 2024.02.19 |
| Spring API 예외처리 / ResponseEntitiy (0) | 2024.02.19 |
| Spring AOP (0) | 2024.02.19 |
| Spring Unit Testing & Mockito &통합 테스팅 (0) | 2024.02.16 |