isValid 中抛出的异常 - 休眠验证器
exception thrown in isValid - 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
}
}
如果您的验证逻辑触发异常,例如在空指向的情况下,我注意到其他可能的验证器不会启动,并且会出现一条错误消息,内容类似于 binding error, 显示。
避免这种情况的最佳做法是什么?
因此,Hibernate Validator 验证器的一般最佳实践是它们应将空条目视为有效。
如果您查看我们在 Hibernate Validator 中提供的那些,它们都 return 对于 null 条目为真。这个想法是当你想检查 null 时显式使用 @NotNull
。
有一些例外,例如 @NotBlank
,但这是一般的最佳做法。
显然,如上所述,您的代码需要正确并避免 NPE 或其他异常。但这不言而喻。
验证我从 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
}
}
如果您的验证逻辑触发异常,例如在空指向的情况下,我注意到其他可能的验证器不会启动,并且会出现一条错误消息,内容类似于 binding error, 显示。
避免这种情况的最佳做法是什么?
因此,Hibernate Validator 验证器的一般最佳实践是它们应将空条目视为有效。
如果您查看我们在 Hibernate Validator 中提供的那些,它们都 return 对于 null 条目为真。这个想法是当你想检查 null 时显式使用 @NotNull
。
有一些例外,例如 @NotBlank
,但这是一般的最佳做法。
显然,如上所述,您的代码需要正确并避免 NPE 或其他异常。但这不言而喻。