只需要配置这样一个类
方法可以自己定义
1.全局异常
所有异常都会执行该方法
/**
* @author
* @create 2020-05-14 16:35
* @ControllerAdvice
* 全局异常处理
* 全局数据绑定
* 全局数据预处理
*/
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)//所有异常
@ResponseBody
public Result exception(Exception e) {
e.printStackTrace();
return Result.error().message("全局异常处理");
}
}
2.特定异常
//特定异常
@ExceptionHandler(ArithmeticException .class)
@ResponseBody
public Result exception(ArithmeticException e) {
e.printStackTrace();
return Result.error().message("执行了ArithmeticException 这个异常");
}
3.自定义异常 需要手动抛出new throw
1、创建自定义异常类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyException extends RuntimeException {
@ApiModelProperty(value = "状态码")
private Integer code;
private String msg;
}
2、添加异常处理方法
@ExceptionHandler(MyException .class)
@ResponseBody
public Result error(MyException e){
e.printStackTrace();
return Result .error().message(e.getMsg()).code(e.getCode());
}
3、业务中需要的位置抛出GuliException
try {
int a = 10/0;
}catch(Exception e) {
throw new MyException (20001,"出现自定义异常");
}