系统错误码定义
在工作过程中,系统的错误码定义非常的乱,对于我来说,开发的过程非常痛苦,经常在同一个错误有多个错误码的情况下,选择困难症得到了最大化的体现。鉴于此,于是下决心自己尝试定义一下系统的错误码。
此文仅表示个人观点,小伙伴们有什么想法可以留言指教一二。
系统错误码的定义我查阅了几个相关资料,目前有一种定义的方式,我个人是非常认同的:设置状态码status,再通过rescode和resmsg,反馈给用户信息,使用者首先看status,再确认错误信息,从而定位错误的原因。
定义错误码,首先需要将系统中的异常进行有效分类。
系统异常分类:
- 系统异常:系统内部抛出未能预先定义的或系统配置异常,需要系统开发人员进行处理的异常
- 非系统异常:是指相关业务类校验异常,业务结果非成功类异常。
系统给使用方的异常也应有分类,
- 接口调用类错误码定义。接口类错误码定义使用字母+单个数字形式。数字从0开始累加,0表示成功。
- 自身系统类错误码定义。自身系统类错误码使用5位错误码。从00000开始累加,00000表示成功。
接口调用类错误码定义添加status,类似于http接口的status状态码。HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。
我的系统参考http接口状态码设定:
分类 | 分类描述 | 分类 | 分类描述 | 分类 | 分类描述 |
h | h代表http协议,表示http接口(下同) | s | s代表SOAP(Simple Object Access Protocol)协议,表示webservice接口 | t | t代表TCP/IP协议,表示socket接口 |
h1** | 服务器接收到请求,需要请求者继续执行操作 | s1** | 服务器接收到请求,需要请求者继续执行操作 | t1** | 服务器接收到请求,需要请求者继续执行操作 |
h2** | 操作被成功接收并处理 | s2** | 操作被成功接收并处理 | t2** | 操作被成功接收并处理 |
h3** | 重定向,需要进一步操作以完成请求 | s3** | 重定向,需要进一步操作以完成请求 | t3** | 重定向,需要进一步操作以完成请求 |
h4** | 请求错误,请求包含语法错误及无法完成请求 | s4** | 请求错误,请求包含语法错误及无法完成请求 | t4** | 请求错误,请求包含语法错误及无法完成请求 |
h5** | 服务器错误,服务器在请求过程中发生了错误 | s5** | 服务器错误,服务器在请求过程中发生了错误 | t5** | 服务器错误,服务器在请求过程中发生了错误 |
状态码列表:
状态码 | 状态码英文名称 | 状态码中文描述 |
h200/s200/t200 | success | 请求成功 |
h400/s400/t400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
h500/s500/t500 | Server Error | 服务器内部错误,无法完成请求 |
API错误码及错误信息定义0是成功,1~20:业务定义的错误,20~30 服务器错误:
状态码 | 错误码 | 描述信息 | 状态码 | 错误码 | 描述信息 |
h200/s200/t200 | 0 | 请求成功 | h500/s500/t500 | 24 | 空指针异常 |
h400/s400/t400 | 1 | "参数名"+参数不能为空 | 25 | 接口处理异常 | |
2 | "参数名"+参数长度有误 | 26 | 写文件异常 | ||
3 | 渠道校验失败 | ||||
4 | 场景校验失败 | ||||
5 | 类型未维护 | ||||
h500/s500/t500 | 21 | 外部服务访问超时 | |||
22 | 数据库访问失败 | ||||
23 | 外部服务异常 |
系统内部错误码定义:系统内部原本没有错误码,但是加上错误码,便于开发定位错误。系统错误码从00000~依次累加
错误码 | 描述信息 |
00000 | 成功 |
00001 | 验证码错误 |
00002 | 用户不存在/密码错误 |
00003 | 用户已封禁,请联系管理员 |
00004 | 角色已封禁,请联系管理员 |
00005 | 没有数据权限,请联系管理员 |
00006 | 连接超时异常 |
00007 | 空指针异常 |
00008 | 外部服务拒绝连接 |
00009 | 数据库访问出错 |
00010 | 线程异常中断 |
未完...待续
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)