Обработчик Spring Exception возвращает список кодов ошибок

1
задан John Oxley 20 March 2019 в 08:31
поделиться

2 ответа

Например, если исключением является ConstrainViolationException: это исключение сообщает о результате нарушений ограничений

@ExceptionHandler({ ConstraintViolationException.class })
public ResponseEntity<Object> handleConstraintViolation(
  ConstraintViolationException ex, WebRequest request) {
    List<String> errors = new ArrayList<String>();
    for (ConstraintViolation<?> violation : ex.getConstraintViolations()) {
        errors.add(violation.getRootBeanClass().getName() + " " + 
          violation.getPropertyPath() + ": " + violation.getMessage());
    }

    ApiError apiError = 
      new ApiError(HttpStatus.BAD_REQUEST, ex.getLocalizedMessage(), errors);
    return new ResponseEntity<Object>(
      apiError, new HttpHeaders(), apiError.getStatus());
}
0
ответ дан Mebin Joe 20 March 2019 в 08:31
поделиться

Вы должны связать Список ошибок в ResponseEntity и затем вернуть его.

 @ExceptionHandler(CustomException.class)
    public ResponseEntity<List<ErrorOutDTO>> validationExceptionHandler(CustomException exception) {
        List<ErrorOutDTO> list = new ArrayList<>();
        ErrorOutDTO error = new ErrorOutDTO();
        error.setField(exception.getField());
        error.setMessage(exception.getMessage());
        list.add(error);
        return (ResponseEntity<List<ErrorOutDTO>>)new ResponseEntity(list, HttpStatus.CONFLICT);
    }
0
ответ дан Jaspreet Jolly 20 March 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: