ValidationException против ConstraintViolationException для проверки

Я пытаюсь выяснить, какое исключение (ConstraintViolationException или же ValidationException) я должен был использовать на @ControllerAdvice.

Мой контроллер

@RequestMapping(value="/myUrl",method = RequestMethod.POST)
    public String getMyData( @Valid @RequestBody MyObject myObject,BindingResult bindingResult ) {   

И это мой класс ControllerAdvice, и я не уверен, какое исключение использовать.

   @ControllerAdvice
    public class ValidationAdviceClass{
        @ExceptionHandler(ValidationException.class or ConstraintViolationException.class )
        public ResponseEntity handleValidtionErrors(ValidationException ex or ConstraintViolationException) {

       // mycode
}

Поиск я нашел кого-то, говорящего MethodArgumentNotValidException

Меня смущает, какой тип исключения использовать.

1 ответ

Исключение не генерируется автоматически, если только в процессе проверки не произошла ошибка, например (затем ValidationException будет брошен).

Любые ошибки проверки в вашем RequestBody будет передан в BindingResult что у вас также есть в качестве параметра вашей функции. Тогда вам решать, хотите ли вы выдать исключение.

Я предлагаю вам прочитать этот учебник Spring для проверки ввода формы, чтобы лучше понять, как вы можете достичь того, чего хотите.

Другие вопросы по тегам