isValid中引发的异常-休眠验证器

时间:2019-06-20 08:27:13

标签: java spring-boot validation hibernate-validator

验证某些配置时,我正在从application.yml加载 使用自定义验证程序,如下所示:

public class MyValidator implements ConstraintValidator<MyAnnotation, List<MyClass>> {

        @Override
        public void initialize(MyAnnotation myAnnotation) {
            //nothing to do
        }

        @Override
        public boolean isValid(List<MyClass> myList, ConstraintValidatorContext context) {
           // validation logic
        }
    }

如果验证逻辑触发异常(例如,在指向空指针的情况下),我注意到其他可能的验证器未启动,并显示一条错误消息,内容类似于绑定错误

避免这种情况的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

因此,使用Hibernate Validator的验证器的一般最佳做法是,他们应将空条目视为有效。

如果您检查我们在Hibernate Validator中提供的选项,则对于空条目它们都将返回true。这个想法是在您要检查null时显式使用@NotNull

有一些例外情况,例如@NotBlank,但这是一般的最佳做法。

很显然,如上所述,您的代码必须正确,并避免NPE或其他异常。但这不用说。