定义@Valid全局异常,返回自定义错误信息

@Valid的注解要求对变量进行验证,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。但@Valid默认返回信息非常长,我们可以定义全局异常子定义我们需要返回的信息和格式。
@valid使用方法:
https://blog.csdn.net/weixin_38118016/article/details/80977207

/**
 * @Author: thunder
 * @Date: 2020/8/7 14:56
 * @ControllerAdvice 实现全局异常处理
 */
@ControllerAdvice
public class MyGlobalExceptionHandler {
    /**
     * 定义@Valid注解全局异常处理机制
     * @param e
     * @return
     */
    @ExceptionHandler(BindException.class)
    @ResponseBody
    public JsonResult validationBodyException(BindException e){
        e.printStackTrace();
        //打印校验住的所有的错误信息
        StringBuilder sb = new StringBuilder("参数错误:[");
        List<ObjectError> list = ((BindException) e).getAllErrors();
        for (ObjectError item : list) {
            sb.append(item.getDefaultMessage()).append(',');
        }
        sb.deleteCharAt(sb.length()-1);
        sb.append(']');
        String msg  =  sb.toString();
        return new JsonResult(500,sb.toString());
    }

}

class JsonResult {

    private int code;
    private String msg;

    public JsonResult(int code, String msg){
        this.code = code;
        this.msg  = msg;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

}

猜你喜欢

转载自blog.csdn.net/u011582840/article/details/107876282