错误码和 HError 对象
sdk v1.1.4 版本重构优化了错误返回信息,你可以通过如下方式对错误信息进行判断。
HError 错误对象的格式
在大部分情况下,SDK API 抛出的错误统一为 HError 类的实例,可以使用 try-catch 块进行捕捉,若 SDK 的 API 返回值是一个 Promise 时,HError 对象则会作为 catch 回调的参数。
HError 实例上有两个重要的属性,对调试错误很有帮助:
| 字段名 | 类型 | 说明 |
|---|---|---|
| code | integer | 错误码 |
| message | string | 错误描述 |
示例代码
// SDK API 返回值是一个 Promise 对象,在 catch 中捕捉错误
wx.BaaS.login().then(res => {
console.log('登录成功')
}, err => {
// err 为 HError 类实例
if (err.code === 600) {
console.log('网络已断开')
} if (err.code === 601) {
console.log('请求超时')
}
// ...
})
// SDK API 是一个同步的操作,则用 try-catch 来捕捉错误
let product = new wx.BaaS.TableObject(1234)
// setQuery 方法必须传递一个 wx.BaaS.Query 对象
try {
product.setQuery(123)
} catch (err) {
console.log(err.code) // 605
}
错误码详解
错误码对应的错误信息如下:
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 支付失败
