ValidationException与ConstraintViolationException进行验证

时间:2018-10-15 16:10:39

标签: spring-boot spring-restcontroller spring-validator

我正在尝试找出必须在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 个答案:

答案 0 :(得分:0)

除非在验证过程中发生错误,否则不会自动引发异常(例如,将引发ValidationException)。

RequestBody中的任何验证错误都将传递给BindingResult,您也将其作为函数的参数。然后由您决定是否要引发异常。

我建议您阅读Spring Tutorial about Validating Form Input,以更好地了解如何实现自己想要的。