SpringBoot异常响应的处理
一、前言
-
在前后端交互的模式中,前后端会统一规范返回数据的格式。但在生产环境中,由于系统异常或bug的原因可能会产生异常,导致无法返回规定的格式数据。
-
SpringBoot中规范数据的一个例子
定义
R类统一数据返回的格式@Data public class R { private Boolean flag; private Object data; private String msg; public R(Boolean flag) { this.flag = flag; } public R(Boolean flag, Object data) { this.flag = flag; this.data = data; } }// 在controller中 @GetMapping public R getAll() { return new R(true, bookService.list()); } -
根据R类返回规范数据
{ "flag": true, "data": [ { "id": 1, "type": "java后端", "name": "疯狂的SpringBoot讲义", "description": "SpringBoot终极讲义" }, ], "msg": null }
二、@RestControllerAdvice异常处理
@RestControllerAdvice注解异常处理类。@ExceptionHandler注解异常处理函数,根据异常类型进行处理,可以在异常处理函数内完成记录日志,通知管理员等操作。
@RestControllerAdvice
public class ProjectExceptionAdvice {
@ExceptionHandler
public R doException(Exception e) {
// 纪录日志、通知等
e.printStackTrace();
return new R("系统异常"); // 按照规范格式返回数据
}
}
本文介绍如何在SpringBoot应用中使用@ControllerAdvice处理异常,包括定义统一的返回格式(R类)以及使用异常处理器返回符合约定的数据。通过实例演示了如何捕获并规范化处理各种异常,确保生产环境下的API响应一致性。
6522

被折叠的 条评论
为什么被折叠?



