一 设置全局统一的返回格式
1.1 没有加全局异常处理
1.这里设置一个字符串为空指针异常,然后看看返回给前端的信息。
2.返回结果
3.效果看起来不友好的提示
1.2 添加全局异常处理
1.代码:添加一个全局异常处理类
@ControllerAdvice
public class GlobalExceptionHandler {
//指定出现什么异常执行这个方法
@ExceptionHandler(Exception.class)
@ResponseBody //为了返回数据
public R error(Exception e) {
e.printStackTrace();
return R.error().message("亲,发生错了!!!..");
}
}
3.结果
二 设置指定异常的返回格式
2.1 在全局类设定处理特定异常
这种情况说白了不怎么常用,因为你并不清楚代码存在要报什么异常。
1.代码
//特定异常
@ExceptionHandler(ArithmeticException.class)
@ResponseBody //为了返回数据
public R error(ArithmeticException e) {
e.printStackTrace();
return R.error().message("执行了ArithmeticException异常处理..");
}
2.如图
3.返回格式
三 自定义返回异常的json格式
3.1 自定义异常处理类
1.自定义一个异常处理类
2.注册异常类
//自定义异常
@ExceptionHandler(ZidingyiException.class)
@ResponseBody //为了返回数据
public R error(ZidingyiException e) {
e.printStackTrace();
return R.error().code(e.getCode()).message(e.getMsg());
}
3.捕捉和调用
4.查看结果