Errno错误码
在使用部分API/组件时,抛出的异常(fail 回调 / Promise reject)Erro对象中除了带有errMsg,还会带有通用错误码errno。
代码示例
java
sud.openBluetoothAdapter({
success (res) {
console.log(res)
}
fail (err) {
console.log(err.errno)
}
})OpenPaaS errno 错误码规范
错误码设计规则
errno 错误码固定为7位数,其构造逻辑如下:
| 位数 | 含义 | 说明 |
|---|---|---|
| 第 1 - 2 位 | 一级类目 | 标识 API 接口的大类(如:设备、网络) |
| 第 3 - 4 位 | 二级类目 | 标识大类下的具体功能模块(如:NFC、Wi-Fi) |
| 第 5 - 7 位 | 具体错误类型 | 标识该功能模块下的具体错误原因 |
示例分析: 错误码 1504003:
15:一级类目(设备)04:二级类目(NFC)003:具体错误类型
已接入类目索引
目前已接入 errno 体系的 API 类目分布如下:
00 - 通用错误码
01 - 基础
00通用基础错误03更新09加密
06 - 网络
00通用网络错误02发起请求03下载04上传06mDNS
07 - 支付
00通用支付错误01支付默认二级类目
11 - 媒体
07实时音视频
13 - 文件
00通用文件错误01文件默认二级类目02fd 接口
14 - 开放接口
16视频号
15 - 设备
00通用设备错误04NFC05Wi-Fi09低功耗蓝牙10蓝牙
20 - AI
02人脸识别
注:一级类目与二级类目的名称通常与 API 接口文档中的目录结构保持一致。
最佳实践
以API接口 openBluetoothAdapter 为例,当蓝牙适配器不可用时,针对 openBluetoothAdapter 接口抛出的异常 Error 对象:
java
"err":
{
"errMsg": "openBluetoothAdapter:fail:not available",
"errCode": 10001,
"errno": 1500102
}可以通过以下代码进行异常处理:
java
sud.openBluetoothAdapter({
success (res) {
console.log(res)
},
fail (err) {
// OpenPaas无法使用蓝牙,可引导用户在系统设置中启用蓝牙
if ( err.errno === 1500102 ) {
sud.showModal({
content: '无法使用蓝牙,请到系统设置中启用'
})
}
}
})错误码列表
以下是errno值的一览表。
| errno | errMsg | 含义 |
|---|---|---|
| 0 | ok | 成功 |
| 1 | cancel | 撤销 |
| 3 | system permission denied | 系统权限未授予OpenPaas |
