java - isValid 抛出异常 - hibernate validator

标签 java spring-boot validation hibernate-validator

验证某些配置时,我从 application.yml 加载 使用如下自定义 validator :

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
        }
    }

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

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

最佳答案

因此,Hibernate Validator validator 的一般最佳实践是它们应该将 null 条目视为有效。

如果您检查我们在 Hibernate Validator 中提供的那些,它们都会针对 null 条目返回 true。这个想法是当您想要检查 null 时显式使用 @NotNull

有一些异常(exception),例如@NotBlank,但这是一般的最佳实践。

显然,如上所述,您的代码需要正确并避免 NPE 或其他异常。但这是不言而喻的。

关于java - isValid 抛出异常 - hibernate validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681963/

相关文章:

java - mapFragment.getMapAsync 中的 NullPointerException

java - 将类与字符串相关联

java - 无法在 Activity 内调用 View 对象的方法

spring-boot - 是否有具有 SSL 连接配置的 Springboot ActiveMQ 外部代理的完整示例?

javascript - 输入 JQuery/Javascript

php - CakePHP 3 - 使用 LocalStringFormat 解析日期以更正 SQL 格式和更正验证

java - 如何在 Java 中实现随机 O(n) 算法来查找未排序数组的中位数?

java - 使用模拟测试时无法注入(inject)application.properties中定义的@value

java - 拒绝用户 'root' 访问 @'localhost' - Spring Boot 和 MySQL 连接

javascript - 如何对 TypeScript 类执行 Joi 验证?