异常处理与恢复
引用文件
本文引用的文件
目录
简介
本文件面向 yudao-cloud 的异 常处理与恢复体系,系统性阐述全局异常处理器的实现机制、异常分类与处理策略、认证与授权失败的响应流程、错误码设计规范与国际化支持思路、以及异常监控与日志记录的最佳实践。目标是帮助开发者快速理解并高效扩展异常处理能力,提升系统的可观测性与可维护性。
项目结构
围绕异常处理的关键模块与文件分布如下:
- 全局异常处理:GlobalExceptionHandler(Rest + 异常兜底)、GlobalResponseBodyHandler(响应包装与访问日志辅助)
- 错误码与返回体:GlobalErrorCodeConstants、ErrorCode、CommonResult、ServiceException
- 业务模块错误码:各模块的 ErrorCodeConstants(如系统、基础设施)
- 网关认证过滤:TokenAuthenticationFilter(Token 校验与登录态判定)
- 异常监控落地:API 错误日志表(infra_api_error_log)
图表来源
- GlobalExceptionHandler.java
- GlobalResponseBodyHandler.java
- GlobalErrorCodeConstants.java
- ErrorCode.java
- CommonResult.java
- ServiceException.java
- ErrorCodeConstants.java(系统模块)
- ErrorCodeConstants.java(基础设施模块)
- TokenAuthenticationFilter.java
- ruoyi-vue-pro.sql(SQL Server)
章节来源
- GlobalExceptionHandler.java
- GlobalResponseBodyHandler.java
- GlobalErrorCodeConstants.java
- ErrorCode.java
- CommonResult.java
- ServiceException.java
- ErrorCodeConstants.java(系统模块)
- ErrorCodeConstants.java(基础设施模块)
- TokenAuthenticationFilter.java
- ruoyi-vue-pro.sql(SQL Server)
核心组件
- 全局异常处理器(@RestControllerAdvice)
- 负责将各类异常翻译为统一的 CommonResult 响应,包含错误码与错误信息。
- 提供参数校验、请求方法不匹配、资源不存在、权限不足、业务异常、系统异常等分类处理。
- 提供兜底异常处理与异步写入 API 错误日志的能力。
- 全局响应包装处理器(@ControllerAdvice)
- 不改变控制器返回结构的前提下,记录返回结果,用于访问日志采集。
- 错误码与返回体
- GlobalErrorCodeConstants:HTTP 语义化的全局错误码(400/401/403/404/405/500 等)。
- ErrorCode:错误码对象,承载 code 与 msg。
- CommonResult:统一返回体,封装 code、msg、data。
- ServiceException:业务异常,携带业务错误码与消息。
- 模块错误码
- 各模块在各自 API 模块下定义业务错误码,遵循“模块段”命名空间,便于定位与扩展。
- 网关认证过滤
- TokenAuthenticationFilter:对请求进行 Token 校验,结合系统侧校验结果处理登录态与权限问题。
- 异常监控
- GlobalExceptionHandler 内部异步写入 API 错误日志,落库到 infra_api_error_log,包含堆栈、用户信息、请求上下文等。
章节来源
- GlobalExceptionHandler.java
- GlobalResponseBodyHandler.java
- GlobalErrorCodeConstants.java
- ErrorCode.java
- CommonResult.java
- ServiceException.java
- TokenAuthenticationFilter.java
- ruoyi-vue-pro.sql(SQL Server)