全部產品
Search
文件中心

Tablestore:錯誤處理

更新時間:Jun 30, 2024

Table StoreJava SDK目前採用“異常”的方式處理錯誤。本文介紹了Table Store錯誤處理方式、異常處理資訊和出錯時的重試策略。

方式

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

說明

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

異常

Table StoreJava SDK中有ClientException和TableStoreException兩種異常,都最終繼承自RuntimeException。

  • ClientException:指SDK內部出現的異常,例如參數設定錯誤等。

  • TableStoreException:指伺服器端錯誤,來自於對伺服器錯誤資訊的解析。TableStoreException包含以下幾個成員:

    • getHttpStatus():HTTP返回碼,例如200、404等。

    • getErrorCode():Table Store返回的錯誤類型字串。

    • getRequestId():用於唯一標識此次請求的UUID。當您無法解決問題時,請記錄此RequestId並提交工單

重試

  • SDK中出現錯誤時會自動重試。預設策略是最大重試時間長度為10s。對流控類錯誤以及讀操作相關的服務端內部錯誤進行重試。

  • 您也可以通過繼承RetryStrategy類實現自訂重試策略,在構造OTSClient對象時,將自訂的重試策略作為參數傳入。

目前SDK中已經實現的重試策略如下:

  • DefaultRetryStrategy:預設重試策略,只會對讀操作重試,稍候再試時間以10 ms指數增長,最大重試時間長度為10s。

  • AlwaysRetryStrategy:對所有類型的請求進行重試,最大重試3次,稍候再試時間以4 ms指數增長,最大稍候再試為1s。