🚨 错误码参考
SunAdmin 所有接口响应均使用 HTTP 200 状态码,业务状态通过 JSON 响应体中的 code 字段区分。
响应结构
json
{
"code": 200,
"message": "操作成功",
"data": {}
}错误码列表
| 错误码 | 常量名 | 说明 | 前端处理 |
|---|---|---|---|
200 | SUCCESS | 操作成功 | 正常处理响应数据 |
2 | OPEN_PAGE | 打开页面 | 跳转到 data 指定的页面 |
400 | FAIL | 业务操作失败 | 提示 message,不跳转 |
10001 | SYSTEM_EXCEPTION | 系统异常 | 提示"系统繁忙,请稍后再试" |
10002 | LOGIN_LOST | 登录失效 | 清除 Token,跳转登录页 |
10003 | DATA_NOT_FOUND | 数据不存在 | 提示 message |
10004 | PERMISSION_FORBIDDEN | 权限禁止 | 提示"暂无权限访问" |
10005 | VALIDATE_FAILED | 数据验证错误 | 提示第一条验证错误信息 |
20001 | LOGIN_BLACKLIST | 黑名单 | 清除 Token,跳转登录页 |
20002 | USER_FORBIDDEN | 账号禁用 | 清除 Token,跳转登录页 |
异常与错误码映射
后端通过全局异常处理器将不同异常映射为对应错误码:
| 异常类型 | 错误码 | 触发场景 |
|---|---|---|
BusinessException | 400 | 业务逻辑失败(默认) |
SystemException | 10001 | 系统内部错误 |
DataNotFoundException | 10003 | 查询数据不存在 |
AuthenticationException | 10002 | 未登录或 Token 过期 |
AuthorizationException | 10004 | 无权限访问 |
ValidationException | 10005 | 表单验证失败 |
ModelNotFoundException | 10003 | 模型查询未找到 |
NotFoundHttpException | 10003 | 路由不存在 |
QueryException | 10001 | 数据库操作异常 |
前端使用
Admin 管理端
错误码枚举定义在 frontend/admin/src/enums/requestEnums.ts:
ts
export enum RequestCodeEnum {
SUCCESS = 200,
FAIL = 400,
OPEN_PAGE = 2,
SYSTEM_EXCEPTION = 10001,
LOGIN_LOST = 10002,
DATA_NOT_FOUND = 10003,
PERMISSION_FORBIDDEN = 10004,
VALIDATE_FAILED = 10005,
LOGIN_BLACKLIST = 20001,
USER_FORBIDDEN = 20002,
}uni-app 客户端
错误码枚举定义在 frontend/uniapp/src/constants/request.ts,常量值与 Admin 一致。
自定义业务错误码
业务模块可以在 10000 以上自定义错误码段,避免与框架内置码冲突:
| 范围 | 建议用途 |
|---|---|
200–9999 | 框架保留 |
10001–10099 | 框架系统级 |
20001–20099 | 框架用户级 |
30000+ | 业务模块自定义 |
