指南
錯誤處理與重試
SDK 已自動處理 token 過期、限流、暫時的 404 與版本撤回;丟到你手上的錯誤,依下表處理即可。
錯誤型別為 iOS LapidError、Android LapidException、Web LapidApiError 與其他 Lapid 錯誤類別。
建議做法
完整錯誤碼見 錯誤碼。
SDK 已自動處理的情況
iOS 與 Android:
- token 過期:重新取得 token 後重試 1 次。
- 429 限流:依
Retry-After等待 1 到 5 秒,最多重試 4 次。 - 404:間隔 2 秒重試 2 次,再重讀目前版本試一次。
- 410 版本已撤回:丟棄該版快取,換到目前版本重試 1 次。
Web SDK 只處理 token 過期(且需實作 tokenSource.invalidate),429、404、410 需自行處理。
判斷可否重試
do {
_ = try await client.priceDaily(securityId: id)
} catch let error as LapidError {
if error.code.isRetryable { /* 提供重試 */ }
}try {
client.priceDaily(id)
} catch (e: LapidException) {
if (e.code.retryable) { /* 提供重試 */ }
}try {
await client.getPriceDaily(release, securityId);
} catch (e) {
if (e instanceof LapidApiError) console.error(e.code, e.status);
}iOS 用 error.code.isRetryable,Android 用 exception.code.retryable。兩者對 QUOTA_EXCEEDED 的判定不同(iOS 為否、Android 為是),建議對 QUOTA_EXCEEDED 一律不重試。