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 для проверки ввода формы, чтобы лучше понять, как вы можете достичь того, чего хотите.