错误码收藏我的收藏
收藏
我的收藏在使用小程序组件/API 时,抛出的异常或异常回调对象中,已有 errMsg(错误信息),errorCode(错误码)和 errorType(错误分类) 会逐步覆盖到所有的组件/API。
- •异常对象说明如下:
属性名 | 类型 | 说明 |
errMsg | string | 错误说明 |
errorCode | number | 错误码,会逐步覆盖到所有组件/API,具体可参考对应组件/API 的对外文档 |
errorType | string | errorType |
代码示例
tt.showShareMenu({ menus: ["record", "share"], success(res) { tt.showToast({ title: '展示成功', }); console.log(res.errMsg); }, fail(res) { const { errMsg, errorCode, errorType } = res; tt.showToast({ title: errMsg, icon: 'fail' }); console.log(errMsg, errorCode, errorType); } });
背景介绍
errorCode 和 errorType 错误码规范的出现是为了解决以下问题:
- •现有的错误码 errNo 无法与组件/API 对应上,不同组件/API 可能会出现相同的错误码 errNo;
- •目前的错误码规范不利于错误消费,难以区分开发者需要关注的错误和小程序框架的错误。
因此,我们设计了一套拥有统一规范的 errorCode 和 errorType,以帮助开发者更好地开发调试及处理错误。
errorCode 和 errorType 错误码规范有如下优点:
- •一个错误码能对应上一个组件/API,便于错误消费;
- •通过 errorType,可以有针对性的消费需要关注的错误。
错误码设计
errorCode
errorCode 采用 AAAABB 6 位错误码规范,其中 1~4 位代表组件/API 编号,5~6 位代表具体错误类型,取值范围如下:
AAAA | BB |
1000~9999 | 通用错误码 |
errorType
errorType 代表错误分类,取值如下:
错误分类 | 说明 |
D | Developer。对应开发者侧的异常,比如参数不符合预期等 |
U | User。对应用户侧的异常,比如有部分能力使用需要用户授权,用户拒绝授权等 |
F | Framework。对应小程序框架内部的异常,有需要请拉客服咨询 |
I | Information。对应一些可以忽略的错误 |
通用错误码
通用错误码指的是不同的组件/API 所共有的错误,错误码最后两位取值在下表中,对应的是通用错误码。通用错误码的取值和说明如下:
BB(具体错误类型) | errorType | 说明 |
79 | D | |
80 | U | 用户拒绝隐私协议授权 |
81 | D | 能力已下线 |
82 | D | |
83 | D | 白名单异常。该小程序没有调用此 API 的白名单,有需要请拉客服咨询 |
84 | F | 小程序框架内部未实现,有需要请拉客服咨询 |
85 | U | 无网络 |
86 | D | 调用太过频繁,建议控制能力调用频率 |
87 | D | 宿主不支持,例如抖音的能力在其他 APP 不可用 |
88 | D | 系统不支持,例如只有 Android 支持的功能在 iOS 不可用 |
89 | U | 用户未授予系统权限,例如 GPS 定位未打开 |
90 | U | |
91 | F | 小程序框架内部错误,有需要请拉客服咨询 |
92 | F | 小程序框架运行环境异常,有需要请拉客服咨询 |
93 | F | 小程序框架兜底异常,有需要请拉客服咨询 |
94 | U | 部分 API 在后台时无法调用 |
95 | U | 用户取消操作 |
96 | U | 用户未登录 |
97 | U | 用户取消登录 |
98 | D | 获取平台登录 session 失败 |
99 | D | 参数错误 |