# 错误码与错误处理

## 错误处理

网关错误码通常以 `102` 开头，表示小程序网关错误。其他错误码以 `-601` 开头，表示系统错误。

在自动接入的情况下，网关发生错误后，会自动使用 `wx.request` 进行降级重试。此时开发者不需要处理网关错误，只需关注源站错误即可。

在自动接入关闭降级/手动接入的情况下，开发者可以在 `fail` 回调或 `catch` 中处理错误，参考代码如下。

```javascript
// 自动接入
wx.request({
  url: '...',
  fail: (error) => {
    if (error.errCode) {
      // 处理网关错误（如果关闭了自动降级功能）
      console.error('网关错误码:', error.errCode); // 网关错误码: 102020
      console.error('错误信息:', error.message); // 错误信息: gateway.call: fail wx system error , code: 102020, callid: 1755674590892-H_i-6vCT
    } else {
      // 处理降级到源站后的其他网络错误
      console.error('其他错误:', error);
    }
  }
})
// 手动接入
gateway.call({
  url: '...',
  fail: (error) => {
    if (error.errCode) {
      // 处理网关错误
      console.error('网关错误码:', error.errCode); // 网关错误码: 102020
      console.error('错误信息:', error.message); // 错误信息: gateway.call: fail wx system error , code: 102020, callid: 1755674590892-H_i-6vCT
    } else {
      // 处理其他错误
      console.error('其他错误:', error);
    }
  }
})
```

## 错误码

|errCode|说明|
|--|--|
|102003|触发用户频率限制|
|102006|非法请求|
|102016|路由错误。请求地址不在微信网关的小程序 URL 里|
|102020|触发微信网关套餐 QPS 限制|
|102021|触发微信网关套餐带宽限制|
|102022|请求地址不在微信网关的小程序 URL 里，或本地网关配置版本较低|
|104100|请求重放拦截|
|-601001|系统失败|
|-601008|请求超时|
|-601069|微信网关访问源站时连接失败|
