Могут ли BindingResult или FieldErrors или GlobalErrors когда-либо быть нулевыми в моем случае? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть обработчик ошибок, как показано ниже

@ExceptionHandler(value = {MethodArgumentNotValidException.class})
public ResponseEntity<Error> methodArgumentNotValidHandler(final MethodArgumentNotValidException e) {
    final List<String> errors = e.getBindingResult().getFieldErrors().stream()
            .map(error -> error.getField() + ": " + error.getDefaultMessage())
            .collect(Collectors.toList());

    e.getBindingResult().getGlobalErrors().stream()
            .forEach(error -> errors.add(error.getObjectName() + ": " + error.getDefaultMessage()));

    return new ResponseEntity<>(new Error(HttpStatus.UNPROCESSABLE_ENTITY, errors), HttpStatus.UNPROCESSABLE_ENTITY);
}

Мне было интересно, если бы BindingResult или FieldErrors из .getFieldErrors или GlobalErrors из getGlobalErrors могли когда-либо оказаться нулевыми, потому что это было бы очень плохо

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

, чтобы получить сообщение об ошибке, используйте этот код в вашем контроллере:

@Autowired
private MessageSource messageSource;
...

FieldError error = bindingResult.getFieldError("fieldName");
String errorMessage = messageSource.getMessage(error, Locale.getDefault());
0 голосов
/ 05 июля 2018

Не будет. Запись случая сбоя для этого в интеграционном тестировании должно устранить ваши сомнения.

Обработчик исключений вызывается для MethodArgumentNotValidException. Таким образом, он должен иметь некоторую ошибку поля. Но для более чистого кода я бы рекомендовал проверить hasFieldErrors(), обрабатывает ли обработчик исключений какое-то другое исключение наряду с MethodArgumentNotValidException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...