1
回答
spring validator 方法验证的 怎么传递自定义异常或错误码
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

我准备使用spring 的方法验证 的方式做参数校验 (实现是 hibernate  validator)

public @NotNull User login(int uid, @NotNull @Size(min = 6, max = 20) String pwd) {
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>

这里调用 获取到验证失败的异常

但是这样只能获得错误信息 但是如果是http接口还需要传递一下错误码或者自定义的异常

异常处理器再转化一下格式 来做具体的处理 这样的需求 需要怎么实现?

try {
    userCtrl.login(1, "12", "12");

} catch (ConstraintViolationException e) {

    StringBuilder msg = new StringBuilder();
    e.getConstraintViolations().forEach((cv -> {

        msg.append(cv.getMessage() + ",");
    }));
    System.out.println(msg);
}

 

我希望的做法是不在具体方法逻辑里处理验证

通过注解验证 不通过就抛异常 

现在就是不知道怎么区分具体的异常

总不能通过message做匹配吧。。

 

 

举报
12叔
发帖于10个月前 1回/521阅

你可以自己实现个异常,在这个异常实例里带有具体的错误号。抛出异常的时候,你如果不想在某个固定的方法处理,你可以通过事件的方式派发。只要事先注册好事件就好了

--- 共有 4 条评论 ---
庄津津 回复 @12叔 : 这框架我没用过。o(╯□╰)o没去细看它的代码。 10个月前 回复
12叔 回复 @庄津津 : 的确是可以 就是觉得有点太麻烦 居然没更好的办法 10个月前 回复
庄津津 回复 @12叔 : 你不是可以定义各个Validator,在validate方法里面通过Errors返回啊 10个月前 回复
12叔问题在于在哪里抛出异常。 使用 validator验证的时候就应该不影响业务代码 最好是在注解的时候绑定对应的错误码才行 但是没有找到这种方式 10个月前 回复
顶部