TIL
내일배움캠프 8주차 Spring Global Exception Handler
by 율량동박씨
2024. 6. 7.
오늘의 키워드
오늘의 내용
- 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의 세분화 피드백을 받아 리펙토링 과정에서 공부를 해봤는데 찾아볼수록 내용이 너무 심오해져서 리펙토링 방향을 어떻게 잡아야 할지 아직 감이 안 잡혔다. 더 공부를 해봐야 할지 적당히 공부를 해야 할지 고민이다.