LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 728|回复: 0

Errno错误码

[复制链接]
发表于 2024-1-23 23:31:12 | 显示全部楼层 |阅读模式
在使用部分小程序 API / 组件时,抛出的异常(fail 回调 / Promise reject)Error 对象中除了带有 errMsg,还会带有通用错误码 errno。

代码示例

wx.openBluetoothAdapter({
  success (res) {
    console.log(res)
  }
  fail (err) {
    console.log(err.errno)
  }
})
背景介绍
errno 错误码的出现是为了解决以下问题:

目前部分 API 在出现错误时,只返回错误信息 errMsg,没有错误码。另一部分 API 虽然有 errCode,但没有形成统一格式规范。
目前有 errCode 的 API 中,不同的 API 失败时返回的 errCode 粒度不同。部分 API 的 errCode 粒度太大,信息不足。
相同的错误在不同的 API 中 errCode 未对齐,不便于开发者记忆和处理。
因此,我们设计了一套拥有统一规范的错误码errno,以帮助开发者更好地开发调试及处理错误。

errno 错误码有如下优点:

在错误码格式上,拥有统一的设计规范。
不同的 API 中出现的相同错误,对应的错误码一致。
错误码中包含 API 类别信息,帮助开发者快速定位问题。
不同 API 中的错误码粒度较为统一。
当 Error 对象中同时有 errno 错误码和 errCode 错误码时,一般以 errno 错误码为准。
后续 errno 错误码会逐步推广到所有 API 接口,并取代现有的 errCode 参数,为开发者提供错误信息。

错误码设计
errno 错误码一般为 7 位数,第 1 - 2 位标识 API 接口的一级类目,第 3 - 4 位标识 API 接口的二级类目,第 5 - 7 位表示具体的错误类型。
例如: errno 错误码为 1504003 时,15 表示 API 接口的一级类目为 设备,04 表示 API 接口的二级类目为 NFC,003 表示具体的错误类型。
目前已接入 errno 的 API 接口涉及的类目包括:

一级类目:00 - 通用错误码
一级类目:01 - 基础
二级类目:00 - 通用基础错误
二级类目:03 - 更新
二级类目:09 - 加密
一级类目:06 - 网络
二级类目:00 - 通用网络错误
二级类目:02 - 发起请求
二级类目:03 - 下载
二级类目:04 - 上传
二级类目:06 - mDNS
一级类目:07 - 支付
二级类目:00 - 通用支付错误
二级类目:01 - 支付默认二级类目
一级类目:11 - 媒体
二级类目:07 - 实时音视频
一级类目:13 - 文件
二级类目:00 - 通用文件错误
二级类目:01 - 文件默认二级类目
二级类目:02 - fd接口
一级类目:14 - 开放接口
二级类目:16 - 视频号
一级类目:15 - 设备
二级类目:00 - 通用设备错误
二级类目:04 - NFC
二级类目:05 - Wi-Fi
二级类目:09 - 低功耗蓝牙
二级类目:10 - 蓝牙
一级类目:20 - AI
二级类目:02 - 人脸识别
二级类目:03 - vision kit
二级类目:04 - 机器学习
一级类目与二级类目名称 和 API 接口文档的类目名称基本保持一致。

最佳实践
以 API 接口 openBluetoothAdapter 为例,当蓝牙适配器不可用时,针对 openBluetoothAdapter 接口抛出的异常 Error 对象:

"err":
{
        "errMsg": "openBluetoothAdapter:fail:not available",
        "errCode": 10001,
        "errno": 1500102
}
可以通过以下代码进行异常处理:

wx.openBluetoothAdapter({
  success (res) {
    console.log(res)
  },
  fail (err) {
    // 微信无法使用蓝牙,可引导用户在系统设置中启用蓝牙
    if ( err.errno === 1500102 ) {
        wx.showModal({
            content: '微信无法使用蓝牙,请到系统设置中启用'
        })
    }
  }
})

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表