统一处理异常:
@RestControllerAdvice,以JSON格式返回异常
@RestControllerAdvice(basePackage = "com.shop.controller") //统一异常
@Slf4j //记录一下
public class ShopExceptionControllerAdvice{
@ExceptionHandler(value = MethodArgumentNotValudException.class)
public R handlerVaildException(MethodArgumentNotValudException e)
{
log.error("校验出错{},异常类型,{}",e.getMessage(),e.getClass());
Map<String,String> errorMap = new HashMap<>();
BindingResult bindingResult = e.getBindingResult();
bindingResult.getFieldError().forEach((fieldError)->{
errorMap.put(fieldError.getField(),fieldError.getDefaultMessage());
});
return R.error( code:BizCodeEnums.VAILD_EXCEPTION.getCode(),msg:BizCodeEnums.VAILD_EXCEPTION.getMsg()).put("data",errorMap);
}
}
异常枚举类:
//定规矩:
//枚举就是能做一个私有构造器
public enum BizCodeEnum{
VAILD_EXCEPTION(code:10001,msg:"参数格式校验失败");
private int code;
private String msg;
BizCodeEnum(int code,String msg){
this.code = code;
this.msg = msg;
}
}
校验:
1.数据校验
2.统一校验
3.分组校验
4.自定义校验