错误码速查
错误码以各后端 ResultCode 定义为准。不同后端实现进度不完全一致,前端只依赖少量认证与权限相关错误码;业务页面不要自行假设不存在的错误码。
编码约定
| 前缀 | 含义 | 说明 |
|---|---|---|
00000 | 成功 | 请求处理成功 |
A**** | 用户端错误 | 参数、登录、令牌、权限、请求频率等问题 |
B**** | 系统执行错误 | 服务端内部执行异常 |
C**** | 第三方服务错误 | 外部服务、数据库、接口不存在等问题 |
前端实际依赖的错误码
前端枚举位于 vue3-element-admin/src/enums/api.ts。
| 错误码 | 前端枚举 | 说明 | 常见处理 |
|---|---|---|---|
00000 | SUCCESS | 成功 | 正常读取 data |
A0230 | ACCESS_TOKEN_INVALID | 访问令牌无效或已过期 | 清理登录态,跳转登录页 |
A0231 | REFRESH_TOKEN_INVALID | 刷新令牌无效或已过期 | 清理登录态,跳转登录页 |
A0301 | PERMISSION_DENIED | 访问未授权 / 权限不足 | 提示无权限,必要时刷新菜单权限 |
A0250 | CHOOSE_TENANT | 需要选择租户 | 进入租户选择流程 |
后端常见错误码
下面列出当前后端常见的 ResultCode。如果某个后端没有实现对应枚举,以该后端源码为准。
成功
| 错误码 | 说明 |
|---|---|
00000 | 成功 |
用户端错误
| 错误码 | 说明 |
|---|---|
A0001 | 用户端错误 |
A0100 | 用户注册错误 |
A0101 | 用户未同意隐私协议 |
A0130 | 校验码输入错误 |
A0200 | 用户登录异常 |
A0201 | 用户账户不存在 |
A0202 | 用户账户被冻结 |
A0210 | 用户名或密码错误 |
A0230 | 访问令牌无效或已过期 |
A0231 | 刷新令牌无效或已过期 |
A0240 | 验证码错误 |
A0241 | 用户验证码尝试次数超限 |
A0242 | 用户验证码过期 |
A0250 | 需要选择租户 |
A0300 | 访问权限异常 |
A0301 | 访问未授权 |
A0400 | 用户请求参数错误 |
A0402 | 无效的用户输入 |
A0410 | 请求必填参数为空 |
A0421 | 参数格式不匹配 |
A0500 | 用户请求服务异常 |
A0502 | 请求并发数超出限制 |
A0506 | 请勿重复提交 |
A0700 | 上传文件异常 |
A0710 | 删除文件异常 |
系统端错误
| 错误码 | 说明 |
|---|---|
B0001 | 系统执行出错 |
B0100 | 系统执行超时 |
第三方或基础设施错误
| 错误码 | 说明 |
|---|---|
C0001 | 调用第三方服务出错 |
C0113 | 接口不存在 |
C0300 | 数据库服务出错 |
C0310 | 数据库执行异常 |
C0313 | 数据库执行语法错误 |
C0342 | 违反完整性约束 |
C0351 | 演示环境已禁用数据库写入 |
统一错误响应格式
json
{
"code": "A0230",
"msg": "访问令牌无效或已过期",
"data": null
}排查建议
| 现象 | 优先检查 |
|---|---|
返回 A0230 / A0231 | Token 是否过期、刷新 Token 是否仍有效、前端是否清理了旧登录态 |
返回 A0301 | 当前用户角色、菜单权限、按钮权限和后端接口权限配置是否一致 |
返回 A0400 / A0402 / A0410 / A0421 | 请求参数、必填字段、字段类型和后端校验规则 |
返回 A0502 | 是否触发限流或并发限制 |
返回 A0506 | 是否重复提交表单或短时间内重复请求同一接口 |
返回 C0113 | URL 路径、网关转发、后端路由是否正确 |
返回 C0300 / C0310 / C0313 / C0342 | 数据库连接、SQL、唯一约束、外键或数据完整性 |
返回 C0351 | 是否正在使用演示环境,演示环境可能禁用写操作 |
使用建议
- 前端只对少数关键错误码做分支处理,例如 Token 失效、权限不足、租户选择。
- 业务错误优先展示后端返回的
msg,不要在前端维护一套不一致的错误码字典。 - 新增错误码时,应先在后端
ResultCode中定义,再同步更新前端枚举和本文档。
