spring-boot - ValidationException vs 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
我对使用哪种类型的异常感到困惑。
解决方案
除非在验证过程中发生错误,否则不会自动抛出异常,例如(然后ValidationException
会抛出 a)。
您中的任何验证错误RequestBody
都将作为函数的参数传递给BindingResult
您。然后由您决定是否要抛出异常。
我建议您阅读有关验证表单输入的 Spring 教程,以更好地了解如何实现您想要的。
推荐阅读
- java - 当我们将职责划分为不同的类时试图理解 SRP
- android - CameraCharacteristics SENSOR_INFO_EXPOSURE_TIME_RANGE 给出错误值
- php - PHP - 每组显示一次类别
- react-native - 在React Native中单击TouchableHighlight后更改颜色
- python-3.x - 为什么克隆项目时,“python setup.py install”不起作用
- svelte - 如何绑定使用 Svelte let 指令声明的变量?
- mysql - Laravel - 未找到列:1054 未知列“vw_winning_report.id”
- d3.js - 如何在数据集中找到最高属性,然后显示与该属性关联的“名称”
- java - @Valid 与 @Validated 在 Spring 中的用法
- amadeus - 在邮递员中收到错误“Mandatory grant_type form parameter missing”