我正在尝试找出必须在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
我对要使用哪种类型的异常感到困惑。
答案 0 :(得分:0)
除非在验证过程中发生错误,否则不会自动引发异常(例如,将引发ValidationException
)。
RequestBody
中的任何验证错误都将传递给BindingResult
,您也将其作为函数的参数。然后由您决定是否要引发异常。
我建议您阅读Spring Tutorial about Validating Form Input,以更好地了解如何实现自己想要的。