錯(cuò)誤處理
表格存儲Java SDK目前采用“異常”的方式處理錯(cuò)誤。本文介紹了表格存儲錯(cuò)誤處理方式、異常處理信息和出錯(cuò)時(shí)的重試策略。
方式
表格存儲Java SDK目前采用“異常”的方式處理錯(cuò)誤,如果調(diào)用接口沒有拋出異常,則說明操作成功,否則失敗。
批量相關(guān)接口,例如BatchGetRow和BatchWriteRow不僅需要判斷是否有異常,還需要檢查每行的狀態(tài)是否成功,只有全部成功后才能保證整個(gè)接口調(diào)用是成功的。
異常
表格存儲Java SDK中有ClientException和TableStoreException兩種異常,都最終繼承自RuntimeException。
ClientException:指SDK內(nèi)部出現(xiàn)的異常,例如參數(shù)設(shè)置錯(cuò)誤等。
TableStoreException:指服務(wù)器端錯(cuò)誤,來自于對服務(wù)器錯(cuò)誤信息的解析。TableStoreException包含以下幾個(gè)成員:
getHttpStatus():HTTP返回碼,例如200、404等。
getErrorCode():表格存儲返回的錯(cuò)誤類型字符串。
getRequestId():用于唯一標(biāo)識此次請求的UUID。當(dāng)您無法解決問題時(shí),請記錄此RequestId并提交工單。
重試
SDK中出現(xiàn)錯(cuò)誤時(shí)會自動重試。默認(rèn)策略是最大重試時(shí)長為10s。對流控類錯(cuò)誤以及讀操作相關(guān)的服務(wù)端內(nèi)部錯(cuò)誤進(jìn)行重試。
您也可以通過繼承RetryStrategy類實(shí)現(xiàn)自定義重試策略,在構(gòu)造OTSClient對象時(shí),將自定義的重試策略作為參數(shù)傳入。
目前SDK中已經(jīng)實(shí)現(xiàn)的重試策略如下:
DefaultRetryStrategy:默認(rèn)重試策略,只會對讀操作重試,重試間隔時(shí)間以10 ms指數(shù)增長,最大重試時(shí)長為10s。
AlwaysRetryStrategy:對所有類型的請求進(jìn)行重試,最大重試3次,重試間隔時(shí)間以4 ms指數(shù)增長,最大重試間隔為1s。