错误代码文档
文档概述
本文档详细记录了邮轮穿舱件管理系统前端页面中定义和使用的错误码、错误信息以及相应的处理建议。通过分析项目代码结构和API文档,整理出系统级的错误处理机制和用户交互中的错误反馈体系。
1. HTTP状态码错误处理
1.1 通用HTTP状态码
根据API文档分析,系统使用标准的HTTP状态码来表示请求处理结果:
| 状态码 | 错误类型 | 描述 | 处理建议 |
|---|---|---|---|
| 200 | 成功 | 请求成功处理 | 正常继续业务流程 |
| 201 | 创建成功 | 资源创建成功 | 显示成功提示,更新界面状态 |
| 204 | 删除成功 | 资源删除成功,无内容返回 | 显示删除成功提示,移除相关UI元素 |
| 400 | 请求参数错误 | 客户端请求参数格式错误或缺失 | 检查请求参数格式,重新提交 |
| 401 | 未授权 | 用户认证失败或token无效 | 跳转到登录页面,清除本地token |
| 404 | 资源不存在 | 请求的资源不存在 | 检查资源ID是否正确,显示"资源不存在"提示 |
| 500 | 服务器内部错误 | 服务器端处理异常 | 显示系统错误提示,联系管理员 |
参考来源:
1.2 认证相关错误
flowchart TD
A[用户请求] --> B{Token验证}
B -->|有效| C[正常处理]
B -->|无效/过期| D[返回401错误]
D --> E[清除本地Token]
E --> F[跳转登录页面]
F --> G[重新认证]
错误处理流程:
- 401错误:Token无效或过期时触发
- 处理建议:自动清除本地存储的token,重定向到登录页面
参考来源:
- src/utils/index.js - Token验证逻辑
- src/http/index.js - 请求拦截器
2. 业务逻辑错误码
2.1 用户认证错误
| 错误场景 | 错误码 | 错误信息 | 处理建议 |
|---|---|---|---|
| 登录失败 | AUTH_001 | "Login Failed, Invalid credentials" | 检查用户名密码,重新输入 |
| Token过期 | AUTH_002 | Token自动过期 | 自动跳转登录页面 |
| Token无效 | AUTH_003 | Token解析失败 | 清除缓存,重新登录 |
参考来源:
- docs/user-api.md - 登录失败错误响应
2.2 用户管理错误
| 错误场景 | 错误码 | 错误信息 | 处理建议 |
|---|---|---|---|
| 用户已存在 | USER_001 | "Username already exists" | 选择其他用户名 |
| 用户不存在 | USER_002 | "User not found" | 检查用户ID或用户名 |
| 权限不足 | USER_003 | "Insufficient permissions" | 联系管理员提升权限 |
3. 前端错误处理机制
3.1 错误拦截器设计
sequenceDiagram
participant Frontend
participant Interceptor
participant Backend
participant ErrorHandler
Frontend->>Interceptor: 发送请求
Interceptor->>Backend: 携带Token
Backend-->>Interceptor: 返回响应/错误
alt 响应成功
Interceptor->>Frontend: 返回数据
else 认证错误(401)
Interceptor->>ErrorHandler: 处理认证错误
ErrorHandler->>Frontend: 清除Token,跳转登录
else 服务器错误(500)
Interceptor->>ErrorHandler: 处理服务器错误
ErrorHandler->>Frontend: 显示错误提示
end
错误拦截器实现:
- 位置:
src/http/index.js中的响应拦截器 - 功能:统一处理HTTP错误响应
- 自动处理认证错误,跳转登录页面
参考来源:
- src/http/index.js - 响应拦截器实现
3.2 Token管理错误
// Token验证函数错误处理
function checkAuthorizaion() {
const token = Cookies.get("token");
if (token) {
try {
const decodedToken = jwtDecode(token);
const currentTime = Date.now() / 1000;
if (decodedToken.exp > currentTime) {
return true; // Token有效
} else {
return false; // Token过期
}
} catch (error) {
return false; // Token解析失败
}
} else {
return false; // 无Token
}
}
错误类型:
- Token过期:JWT过期时间检查失败
- Token无效:JWT解析异常
- 无Token:本地存储中未找到token
参考来源:
- src/utils/index.js - Token验证完整实现
4. 错误处理最佳实践
4.1 用户界面错误提示
| 错误级别 | 显示方式 | 用户操作 | 自动处理 |
|---|---|---|---|
| 轻微错误 | Toast提示 | 用户确认 | 无 |
| 认证错误 | 模态对话框 | 跳转登录 | 自动清除缓存 |
| 系统错误 | 错误页面 | 联系管理员 | 记录错误日志 |
4.2 错误日志记录
系统应记录以下错误信息:
- 错误发生时间戳
- 错误类型和代码
- 用户操作上下文
- 请求参数和响应数据
- 堆栈跟踪信息
5. 错误恢复策略
5.1 自动恢复机制
stateDiagram-v2
[*] --> NormalOperation
NormalOperation --> AuthenticationError: 401错误
AuthenticationError --> LoginPage: 自动跳转
LoginPage --> NormalOperation: 重新登录成功
NormalOperation --> ServerError: 500错误
ServerError --> RetryOperation: 重试机制
RetryOperation --> NormalOperation: 重试成功
RetryOperation --> ErrorPage: 重试失败
5.2 手动恢复操作
用户可执行的错误恢复操作:
- 刷新页面:解决临时性错误
- 重新登录:解决认证相关问题
- 清除缓存:解决本地数据不一致
- 联系支持:解决系统级问题
索引
本文档系统性地整理了邮轮穿舱件管理系统前端页面的错误处理体系,涵盖了HTTP状态码、业务逻辑错误、前端错误拦截机制等多个方面。通过统一的错误处理策略和用户友好的错误提示,提升了系统的稳定性和用户体验。
关键要点:
- 使用标准的HTTP状态码进行错误分类
- 实现统一的错误拦截器进行集中处理
- 针对不同错误级别提供相应的用户反馈
- 建立完善的错误恢复和重试机制
参考文件:
- src/http/index.js - HTTP请求配置和错误拦截
- src/utils/index.js - Token管理和错误处理工具函数
- docs/user-api.md - API错误响应规范