本文转载自华为开发者联盟
1. 错误类型
1 连接层面:接口在连接层面使用HTTP协议接入,HTTP STATUS表示连接层面的状态;
2 平台层面:HTTP Response Header中如果有NSP_STATUS,且该值不为0,则表示开放平台部分捕获到的错误;
3 服务层面:应用自己在返回结果中定义的,这种其实是属于正常结果的一部分,每个接口单独定义,且调用者需要自己处理;
其中,服务可以直接抛出异常,被平台所捕获,从而转化为NSP_STATUS。
2. 错误处理机制
调用服务时的错误处理机制建议为:
0 检测HTTP STATUS,看是否正常
1 检测NSP_STATUS ,看是否正常
2 根据调用服务的说明,看返回值中是否有错误
3. HTTP STATUS描述
异常码 | 描述 |
---|---|
200 | 成功 |
401 | 需要鉴权 |
500 | 开放网关发生异常 |
502~504 | 其他网络错误 |
4. NSP STATUS描述
异常码 | 描述 |
---|---|
0 | 成功 |
1 | 一个未知的错误发生 |
2 | 服务临时不可用 |
3 | 未知的方法 |
4 | 应用已达到设定的请求上限 |
5 | 请求来自未经授权的IP地址 |
6 | 当前用户session key过期了 |
7 | 调用次数超过了限制 |
8 | 调用太频繁 |
100 | 无效未知参数 |
101 | 无效的API_KEY |
102 | 无效的SESSION_KEY |
103 | 必须是POST提交 |
104 | 无效的签名 |
105 | 缺少系统参数:如nsp_svc, nsp_ts, nsp_key等 |
106 | app或者session没有调用当前服务的权限 |
107 | client和secret需要重新获取(如算法升级等) |
108 | 路由失败,无法识别服务投递地址 |
108 | nsp_ts偏差过大 |
110 | 接口内部异常 |
403 | 无权限 |