Skip to content

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 上传
    • 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 人脸识别

注:一级类目与二级类目的名称通常与 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值的一览表。

errnoerrMsg含义
0ok成功
1cancel撤销
3system permission denied系统权限未授予OpenPaas