錯誤與重試
本頁譯自英文。如兩者有出入,以英文頁面為準。 閱讀英文頁面
函式庫拋出的每一個失敗都屬於四種錯誤之一,而這四種錯誤共用同一個基底型別,所以一個處理程式就能把它們全部捕捉。
- API 錯誤。 API 拒絕了請求。它帶有 HTTP 狀態碼、一個可供分支判斷的穩定
code,以及一則使用你所要求語言的訊息。 - OAuth 錯誤。 權杖端點拒絕了你的憑證或你要求的權限範圍。
- 維護錯誤。 API 因維護而暫時無法使用。
- 傳輸錯誤。 沒有收到可用的回應:連線失敗或逾時,或是回應無法讀取。
取消呼叫不算錯誤。它會以你所用語言本身的取消機制呈現。
哪些會被重試
429 或 503 如果在 Retry-After 標頭中告知了需要等待多久,且等待時間不超過 60 秒,就會在剛好等待這麼久之後重試。一次呼叫最多嘗試 3 次。把最大次數設為 1 即可關閉重試。
其餘情況都會立即拋出:
- 沒有
Retry-After的 429 或 503; - 超過 60 秒的等待,函式庫不會在你的呼叫中耗費這段時間。該錯誤帶有
retry_after,你可以自行安排重試; - 傳輸錯誤,因為請求可能已經送達 API;
- 任何已經送出過事件的串流。