SpringBoot异常处理

1.定义全局异常类GlobalExceptionHandler

@ControllerAdvice
public class GlobalExceptionHandler {


    /**
     * 数据验证的全局异常处理
     */
    @ExceptionHandler(value = org.springframework.validation.BindException.class)
    @ResponseBody
    public ResultInfo bindHandler(BindException e){
        ResultInfo resultInfo=new ResultInfo();
        resultInfo.setCode(900);
        resultInfo.setMsg(e.getBindingResult().getFieldError().getDefaultMessage());
        return resultInfo;
    }


    /**
     * 用户未登录的情况下的全局异常
     */
    @ExceptionHandler(value = NoLoginException.class)
    @ResponseBody
    public ResultInfo noLoginHandler(NoLoginException e){
        System.out.println("用户未登录的异常处理");
        ResultInfo resultInfo=new ResultInfo();
        resultInfo.setCode(e.getCode());
        resultInfo.setMsg(e.getMsg());
        return resultInfo;
    }




    /**
     * 参数异常的全局处理
     */
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public ResultInfo paramsHandler(ParamException e){
        ResultInfo resultInfo=new ResultInfo();
        resultInfo.setCode(e.getCode());
        resultInfo.setMsg(e.getMsg());
        return resultInfo;
    }

    /**
     * 全局异常处理   返回的json格式数据
     */
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public ResultInfo exceptionHandler(Exception e){
        ResultInfo resultInfo=new ResultInfo();
        resultInfo.setCode(300);
        resultInfo.setMsg("操作异常");
        //判断异常类型
       /* if(e instanceof ParamException){
            ParamException p = (ParamException) e;
            resultInfo.setCode(p.getCode());
            resultInfo.setMsg(p.getMsg());
        }*/
        return resultInfo;
    }
}

2.实体类中的进行校验是否为空的代码

public class User implements Serializable {
    private Integer id;
    @NotBlank(message = "用户名不能为空")
    private String userName;
    @NotBlank(message = "密码不能为空")
    @Length(min=6,max = 12,message = "大于6小于12")
    private String userPwd;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }
}

3.controller层进行校验处理

    @ApiOperation(value = "添加用户")
    @PutMapping("/user02")
    public ResultInfo addUser(@Valid User user){
        ResultInfo resultInfo=new ResultInfo();
        userService.saveUser(user);
        return resultInfo;
    }
全部评论

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务