@RestControllerAdvice : 스프링 빈에 등록된 @Controller, @RestController 클래스 전체 대상으로 @ExceptionHandler를 적용할 수 있는 설정
@ExceptionHandler : @Controller, @RestController 클래스 안에서 예외가 발생한 것을 적용된 Bean 내에서 처리할 수 있게 하는 기능을 제공한다.
@Slf4j
@RestControllerAdvice
public class GlobalControllerAdvice {
@ExceptionHandler(SnsApplicationException.class)
public ResponseEntity<?> applicationHandler(SnsApplicationException e){
log.error("Error occurs {}", e.toString());
return ResponseEntity.status(e.getErrorCode().getStatus())
.body(Response.error(e.getErrorCode().name()));
}
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<?> applicationHandler(RuntimeException e){
log.error("Error occurs {}", e.toString());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Response.error(ErrorCode.INTERNAL_SERVER_ERROR.name()));
}
}
'스프링 관련 > 스프링 프레임워크' 카테고리의 다른 글
스프링 부트 핵심 기능 5가지 (0) | 2023.03.11 |
---|---|
다이나믹 프록시 (mockito) (0) | 2022.12.20 |
@Transactional 동작 원리 간략 설명 (0) | 2022.09.13 |
API 만들 때 생길 수 있는 문제 (컬렉션 조회 최적화) (0) | 2022.08.28 |
API 만들 때 생길 수 있는 문제 (지연 로딩과 조회 성능 최적화) (0) | 2022.08.28 |
댓글