错误码和 HError 对象

sdk v1.1.4 版本重构优化了错误返回信息,你可以通过如下方式对错误信息进行判断。

HError 错误对象的格式

在大部分情况下,SDK API 抛出的错误统一为 HError 类的实例,可以使用 try-catch 块进行捕捉,若 SDK 的 API 返回值是一个 Promise 时,HError 对象则会作为 catch 回调的参数。

HError 实例上有两个重要的属性,对调试错误很有帮助:

字段名类型说明
codeinteger错误码
messagestring错误描述

示例代码

  1. // SDK API 返回值是一个 Promise 对象,在 catch 中捕捉错误
  2. wx.BaaS.login().then(res => {
  3. console.log('登录成功')
  4. }, err => {
  5. // err 为 HError 类实例
  6. if (err.code === 600) {
  7. console.log('网络已断开')
  8. } if (err.code === 601) {
  9. console.log('请求超时')
  10. }
  11. // ...
  12. })
  1. // SDK API 是一个同步的操作,则用 try-catch 来捕捉错误
  2. let product = new wx.BaaS.TableObject(1234)
  3. // setQuery 方法必须传递一个 wx.BaaS.Query 对象
  4. try {
  5. product.setQuery(123)
  6. } catch (err) {
  7. console.log(err.code) // 605
  8. }

错误码详解

错误码对应的错误信息如下:

400 Bad Request 参数错误

401 Unauthorized 未授权

402 Payment Required 应用欠费

403 Forbidden 禁止访问

404 Not Found 服务器找不到给定的资源

500 Internal Server Error 内部服务器错误

600 network disconnected 网络已断开

601 request timeout 请求超时

602 uninitialized 未调用 BaaS.init() 进行初始化

603 unauthorized 用户尚未授权

604 session missing 用户尚未登录

605 incorrect parameter type 不正确的参数类型

607 payment cancelled 用户取消支付

608 payment failed 支付失败