개인 프로젝트를 진행하면서 예외 처리를 할 때 @ExceptionHandler와 @ControllerAdvice 을 사용하였다. 두 어노테이션에 대해 알아보자!
@ControllerAdvice
public class ExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
protected ResponseEntity<ErrorResponse> handlerCustomException(MethodArgumentNotValidException exception) {
return ErrorResponse.toResponseEntity(exception);
}
... 이외 예외처리
}
MethodArgumentNotValidException는 유효성 검사에서 발생하는 예외로, @Valid 어노테이션을 사용하여 데이터를 검증할 때 발생하는 예외이다.@Valid어노테이션을 사용했고 이때 발생하는 예외들은 모두 처리하기 위해 @ControllerAdvice + @ExceptionHandler를 사용했다.