错误与重试
本页译自英文。如两者有出入,以英文页面为准。 阅读英文页面
库抛出的每一个失败都属于四种错误之一,而这四种错误共享同一个基类型,所以一个处理程序就能把它们全部捕获。
- API 错误。 API 拒绝了请求。它带有 HTTP 状态码、一个可供分支判断的稳定
code,以及一条使用你所请求语言的消息。 - OAuth 错误。 令牌端点拒绝了你的凭据或你请求的权限范围。
- 维护错误。 API 因维护而短暂不可用。
- 传输错误。 没有收到可用的应答:连接失败或超时,或者响应无法读取。
取消调用不算错误。它会以你所用语言自身的取消机制呈现。
哪些会被重试
429 或 503 如果在 Retry-After 头中告知了需要等待多久,且等待时间不超过 60 秒,就会在恰好等待这么久之后重试。一次调用最多尝试 3 次。把最大次数设为 1 即可关闭重试。
其余情况都会立即抛出:
- 没有
Retry-After的 429 或 503; - 超过 60 秒的等待,库不会在你的调用中耗费这段时间。该错误带有
retry_after,你可以自己安排重试; - 传输错误,因为请求可能已经到达 API;
- 任何已经送出过事件的流。