▶ GlobalExceptionHandler 클래스
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
}
- @ControllerAdvice: 이 어노테이션은 전역 예외 처리기를 정의하는 데 사용된다. 애플리케이션의 모든 컨트롤러에서 발생하는 예외를 이 클래스에서 공통으로 처리할 수 있다. 이를 통해 예외 처리 코드를 여러 컨트롤러에 반복적으로 작성할 필요 없이, 전역적으로 통일된 예외 처리를 구현할 수 있다.
- @ExceptionHandler(Exception.class): 이 어노테이션은 특정 예외 유형을 처리하기 위한 메소드를 지정한다. Exception.class를 매개변수로 지정하였으므로, 이 메소드는 모든 예외(Exception 클래스와 그 하위 클래스)에 대해 실행된다.
- public ResponseEntity<String> handleException(Exception e): handleException 메소드는 Exception 객체를 매개변수로 받아 예외 정보를 처리한다.
- ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR): HTTP 상태 코드를 500 INTERNAL_SERVER_ERROR로 설정한다. 이는 서버에서 처리 중 예기치 않은 오류가 발생했음을 의미한다.
- .body(e.getMessage()): 예외 객체 e의 메시지를 응답 본문에 담아 클라이언트에 전달한다. 이를 통해 클라이언트는 예외 메시지를 확인할 수 있다.