Spring의 Global 예외처리

금은체리·2023년 12월 1일
1

Spring

목록 보기
47/49

Global 예외처리 방법

  • Global 예외 처리

    • @ControllerAdvice 사용
      • @ControllerAdvice 는 Spring에서 예외처리를 위한 클래스 레벨 애너테이션
      • 이 애너테이션은 모든 Controller에서 발생하는 예외를 처리하기 위해 사용됨
      • @ControllerAdvice 가 붙은 클래스에서는 @ExceptionHandler 메서드를 정의하여 예외를 처리하는 로직을 담을 수 있음
      • @ControllerAdvice 를 사용하는 이유?
        • 예외처리를 중앙 집중화하기 좋음
        • 각각의 Controller에서 예외처리 로직을 반복하지 않아도 됨으로 코드의 중복을 방지하고 유지보수성을 높일 수 있음
        • 또한, @ControllerAdvice 를 사용하면 예외 처리 로직을 모듈화하여 관리하기 쉽기 때문에, 팀 내에서 공통된 예외 처리 로직을 공유하거나 다른 팀에서 예외 처리를 참고할 수 있음
          • 이를 통해 개발 생산성 향상 가능
  • @RestControllerAdvice
    • @ControllerAdvice + @ResponseBody
  • @RestControllerAdvice 적용
@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
        );
    }
}
  • FolderController의 예외처리 메서드 제거
profile
전 체리 알러지가 있어요!

0개의 댓글