介绍
如果代码没有做异常处理,就会报框架错误,而这种格式不符合REST风格,也可以在每一个接口添加 try{ } catch { } 捕获异常,但是会非常的繁琐,这时候可以使用全局异常处理。
统一响应类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
Integer code;
String msg;
Object data;
public static Result success(String msg,Object data)
{
return new Result(200,msg,data);
}
public static Result error(String msg,Object data)
{
return new Result(-1,msg,data);
}
}
创建全局异常处理器
注解里还嵌套了其他的注解
@RestControllAdvice = @ControllerAdvice + @ResponseBody
Exception捕获了全局的异常,也就是说不管抛了什么异常,都可以捕获到
@RestControllerAdvice //全局异常处理
public class AllException {
@ExceptionHandler(Exception.class) //捕获哪种类型的异常
public Result ex(Exception ex){
ex.printStackTrace(); //打印日常信息
return Result.error("发送了错误",null);
}
}