- 自定义一个异常类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SrrExcpetion extends RuntimeException{
private Integer code;
private String msg;
}
- 自成定义异常处理类
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
// ①全局异常处理
@ExceptionHandler(Exception.class)
public R error(Exception e){
e.printStackTrace();
return R.fail().message("执行了全局异常处理");
}
// ② 特定异常处理
@ExceptionHandler(ArithmeticException.class)
public R error(ArithmeticException e){
e.printStackTrace();
return R.fail().message("执行了特定异常处理");
}
// ③自定义异常处理
@ExceptionHandler(SrrExcpetion.class)
public R error(SrrExcpetion e){
e.printStackTrace();
return R.fail().code(e.getCode()).message(e.getMsg());
}
}
4 测试
//查询所有记录
@ApiOperation("查询所有")
@GetMapping("/findAll")
public R findAllRole() {
//TODO 模拟异常效果
try {
int i = 1 / 0;
}catch (Exception e){
throw new SrrExcpetion(20001,"执行了自定义异常处理");
}
List<SysRole> list = sysRoleService.list();
return R.ok(list);
}