gpt4 book ai didi

java - 如何正确抛出 MethodArgumentNotValidException

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:55 25 4
gpt4 key购买 nike

我试图获得与在 Controller 的对象参数中使用@Valid 时相同的结果。当对象无效时,我的具有 @RestControllerAdvice 的 ExceptionHandlerController 会抛出一个异常 (MethodArgumentNotValidException)。

在我的例子中,我想验证一个对象,但我只能在服务层验证它。该对象具有 bean 验证注释,因此我尝试以编程方式为我的 ExceptionHandlerController 处理它抛出 MethodArgumentNotValidException,但我没有成功。

到目前为止我有这个:

private void verifyCard(CardRequest card) {
BeanPropertyBindingResult result = new BeanPropertyBindingResult(card, "card");
SpringValidatorAdapter adapter = new SpringValidatorAdapter(this.validator);
adapter.validate(card, result);

if (result.hasErrors()) {
try {
throw new MethodArgumentNotValidException(null, result);
} catch (MethodArgumentNotValidException e) {
e.printStackTrace();
}
}
}

第一个参数来自 MethodParameter 类型,我无法创建此对象。这是处理我的问题的最佳方式吗?

编辑 1:

我无法删除 try/catch block 。当我删除它时,出现编译错误。如何变通?

最佳答案

您已经通过 catch block 处理了它,您应该删除 try-catch 以让您的全局处理程序捕获它。

然后指定如下方法

private void verifyCard(CardRequest card) throws MethodArgumentNotValidException

关于java - 如何正确抛出 MethodArgumentNotValidException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com