@Slf4j @ControllerAdvice @Profile("servlet") @RequiredArgsConstructor @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) public class ServletExceptionHandler { private final Map, HttpStatus> exceptionToStatusCode; private final HttpStatus defaultStatus; @ExceptionHandler(CustomExceptionInFilter.class) public ResponseEntity handleCustomException(CustomExceptionInFilter ex) { return this.handleException(ex); } @ExceptionHandler(Exception.class) public ResponseEntity handleException(Exception ex) { HttpStatus status = exceptionToStatusCode.getOrDefault(ex.getClass(), defaultStatus); ErrorResponse errorResponse = ErrorResponse .builder() .message(ex.getMessage()) .code(status.value()) .build(); log.error("Exception has been occurred", ex); return new ResponseEntity<>(errorResponse, status); } }