본문 바로가기
TIL

내일배움캠프 8주차 Spring Global Exception Handler

by 율량동박씨 2024. 6. 7.

오늘의 키워드

  • Global Exception Handler

오늘의 내용

  • Global Exception Handler
    • 애플리케이션 전역에서 발생하는 예외를 처리하기 위한 방법이다
    • 주로 Spring Framework에서 @ControllerAdvice와 @ExceptionHandler을 사용해 구현한다
      • @ControllerAdvice는 전역적으로 예외를 처리할 수 있는 애너테이션이고 @Controller 애너테이션이 붙은 컨트롤러에서 발생하는 예외를 처리할 수 있다
      • @ExceptionHandler
        • AOP를 이용한 예외처리 방식이다
        • 메서드에 선언해 예외 처리를 하려는 클래스를 지정하면 예외 발생 시 정의된 로직에 의해 처리된다
      • 아래는 GlobalExceptionHandler의 예제이다
@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<?> handleGlobalException(Exception ex, WebRequest request) {
        ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(), request.getDescription(false));
        return new ResponseEntity<>(errorDetails, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}

오늘의 회고

  • 팀프로젝트 진행 중 Exception의 세분화 피드백을 받아 리펙토링 과정에서 공부를 해봤는데 찾아볼수록 내용이 너무 심오해져서 리펙토링 방향을 어떻게 잡아야 할지 아직 감이 안 잡혔다. 더 공부를 해봐야 할지 적당히 공부를 해야 할지 고민이다.