ResponseEntityExceptionHandler란?

ResponseEntityExceptionHandler는 Spring MVC가 제공하는 기본 전역 예외 처리용 베이스 클래스로, 스프링에서 발생하는 기본적인 예외들을 처리하는 @ExceptionHandler가 모여있는 클래스이다.

따라서 @ControllerAdvice 클래스를 만들때 기본적으로 상속받아 사용한다. (스프링 기본 예외들까지 모두 @ExceptionHandler로 구현하기 힘들기 때문)

구현체 코드

public abstract class ResponseEntityExceptionHandler {
    ...

    protected ResponseEntity<Object> handleExceptionInternal(
        Exception ex, @Nullable Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {
            
        ...
    }
}

이때 주의할 점은 handleExceptionInternal 메서드는 기본적으로 에러 메시지를 반환하지 않기 때문에, @ControllerAdvice 클래스에서 handleExceptionInternal를 재정의해 줄 필요가 있다.