В моем приложении я предоставил обработчики для конкретных и Generic Exception (Exception.class
) для обоих.Проблема заключается в том, что всякий раз, когда в API предоставляется неправильный ввод, он может выдать BAD REQUEST
(HTTP-400).Тем не менее, он возвращает HTTP-500 в случае BAD-запросов.Валидационная пружинная загрузка автоматически запускается, однако она перехватывается handleApplicationException.
@ExceptionHandler(value = Exception.class)
public ResponseEntity<ErrorResponseDTO> handleApplicationException(final Exception ex) {
LOGGER.error("Unhandled Exception occurred ", ex);
ErrorResponseDTO errorResponseDTO = new ErrorResponseDTO();
errorResponseDTO.setMessage("Internal Server Error");
errorResponseDTO.setHttpStatus(HttpStatus.INTERNAL_SERVER_ERROR);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponseDTO);
}
@ExceptionHandler(value = ResourceNotFoundException.class)
public ResponseEntity<ErrorResponseDTO> handleResourceNotFoundException(final ResourceNotFoundException
notFoundException) {
LOGGER.error("Handling resource not found exception", notFoundException);
ErrorResponseDTO errorResponseDTO = new ErrorResponseDTO();
errorResponseDTO.setMessage(notFoundException.getMessage());
errorResponseDTO.setHttpStatus(HttpStatus.NOT_FOUND);
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponseDTO);
}