Tablestore Python ソフトウェア開発キット (SDK) は、例外を使用してエラーを処理します。このトピックでは、Tablestore のエラー処理方法、例外情報、およびリトライポリシーについて説明します。
方法
Tablestore Python SDK は、例外を使用してエラーを処理します。例外がスローされない場合、API 呼び出しは成功です。例外がスローされた場合、オペレーションは失敗です。
BatchGetRow や BatchWriteRow などのバッチ操作の場合は、例外を確認し、各行のステータスを検証する必要があります。すべての行が正常に処理された場合にのみ、API 呼び出しが成功したと見なされます。
例外
Tablestore Python SDK は、OTSClientError と OTSServiceError の 2 種類の例外を定義しています。どちらも Exception クラスを継承しています。
OTSClientError: SDK 内部で発生した例外を示します。パラメーター設定の誤りや、返された結果の解析エラーなどが該当します。
-
OTSServiceError: サーバーレスポンスから解析された、サーバー側のエラーです。OTSServiceError には、次のメンバーが含まれています。
get_http_status: 200 や 404 などの HTTP ステータスコードです。
get_error_code: Tablestore が返すエラータイプの文字列です。
get_error_message: Tablestore が返すエラーメッセージの文字列です。
get_request_id: リクエストを一意に識別する汎用一意識別子 (UUID) です。問題を解決できない場合は、このリクエスト ID を記録し、チケットを送信してください。
リトライ
SDK は、エラーが発生した際にオペレーションを自動的にリトライします。デフォルトでは、最大リトライ回数は 20 回、最大リトライ間隔は 3000 ms です。SDK は、読み取りオペレーションにおけるスロットリングエラーおよびサーバー側の内部エラーをリトライします。詳細については、「tablestore/retry.py」をご参照ください。
カスタムのリトライポリシーを作成するには、RetryPolicy クラスを継承します。OTSClient オブジェクトを初期化する際に、カスタムのリトライポリシーをパラメーターとして渡します。
SDK は、次のリトライポリシーを提供しています。
DefaultRetryPolicy: デフォルトのリトライポリシーです。読み取りオペレーションのみをリトライします。最大リトライ回数は 20 回、最大リトライ間隔は 3000 ms です。
NoRetryPolicy: リトライを実行しません。
NoDelayRetryPolicy: 遅延なしのリトライポリシーです。このポリシーは慎重に使用してください。
WriteRetryPolicy: デフォルトのリトライポリシーをベースに、書き込みオペレーションもリトライします。