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