Code 代码从 100101 开始 错误代码说明:100101
- 10: 服务
- 01: 模块
- 01: 模块下的错误码序号,每个模块可以注册 100 个错误
- 目前第一版本错误码只支持英文
- 后面新模块的错误码添加,这里需要加上说明
服务 | 模块 | 说明 |
---|---|---|
10 | 00 | 通用 - 基本错误 |
10 | 01 | 通用 - 数据库类错误 |
10 | 02 | 通用 - 认证授权类错误 |
10 | 03 | 通用 - 加解码类错误 |
11 | 00 | 通话服务 - 用户相关(模块)错误 |
11 | 01 | 通话服务 - 主播相关(模块)错误 |
通用 - 所有服务都适用的错误,提高复用性,避免重复造轮子
错误描述包括:对外的错误描述和对内的错误描述两部分。
- 对外暴露的错误,统一大写开头,结尾不要加
.
- 对外暴露的错误,要简洁,并能准确说明问题
- 对外暴露的错误说明,应该是
该怎么做
而不是哪里错了
- 告诉用户他们可以做什么,而不是告诉他们不能做什么。
- 当声明一个需求时,用 must 而不是 should。例如,must be greater than 0、must match regex '[a-z]+'。
- 当声明一个格式不对时,用 must not。例如,must not contain。
- 当声明一个动作时用 may not。例如,may not be specified when otherField is empty、only name may be specified。
- 引用文字字符串值时,请在单引号中指示文字。例如,ust not contain '..'。
- 当引用另一个字段名称时,请在反引号中指定该名称。例如,must be greater than request。
- 指定不等时,请使用单词而不是符号。例如,must be less than 256、must be greater than or equal to 0 (不要用 larger than、bigger than、more than、higher than)。
- 指定数字范围时,请尽可能使用包含范围。
- 建议 Go 1.13 以上,error 生成方式为 fmt.Errorf("module xxx: %w", err)。
- 错误描述用小写字母开头,结尾不要加标点符号。
错误信息是直接暴露给用户的,不能包含敏感信息