本文介紹Tablestore Python SDK的錯誤處理方式和重試策略。

方式

Tablestore Python SDK目前採用“異常”的方式處理錯誤。如果調用介面沒有拋出異常,則說明操作成功,否則失敗。

说明 批量相關介面,例如BatchGetRow和BatchWriteRow不僅需要判斷是否有異常,還需要檢查每行的狀態是否成功,只有全部成功後才能保證整個介面調用是成功的。

異常

Tablestore Python SDK中有OTSClientError和OTSServiceError兩種異常,都最終繼承自Exception。

  • OTSClientError:指SDK內部出現的異常,例如參數設定錯誤,返回結果解析失敗等。
  • OTSServiceError:指伺服器端錯誤,來自於對伺服器錯誤資訊的解析。OTSServiceError包含以下幾個成員:
    • get_http_status:HTTP返回碼,例如200、404等。
    • get_error_code:Tablestore返回的錯誤類型字串。
    • get_error_message:Tablestore返回的錯誤訊息字串。
    • get_request_id:用於唯一標識此次請求的UUID。當您無法解決問題時,記錄此requestId並提交工單

重試

  • SDK中出現錯誤時會自動重試。預設策略是最大重試次數為20,最大稍候再試為3000毫秒。對流控類錯誤以及讀操作相關的服務端內部錯誤進行的重試,請參見tablestore/retry.py。
  • 您也可以通過繼承RetryPolicy類實現自訂重試策略,在構造OTSClient對象時,將自訂的重試策略作為參數傳入。
目前SDK中已經實現的重試策略如下。
  • DefaultRetryPolicy:預設重試策略,只會對讀操作重試,最大重試次數為20,最大稍候再試為3000毫秒。
  • NoRetryPolicy:不進行任何重試。
  • NoDelayRetryPolicy:沒有延時的重試策略,請謹慎使用。
  • WriteRetryPolicy:在預設重試策略基礎上,會對寫操作重試。