Python向けTablestore SDKは、エラーを例外として処理します。このトピックでは、Python向けTablestore SDKのエラー処理方法、例外、および再試行ポリシーについて説明します。
エラー処理方法
Python向けTablestore SDKは、エラーを例外として処理します。操作で例外がスローされない場合、操作は成功です。操作で例外がスローされた場合、操作は失敗です。
BatchGetRowやBatchWriteRowなどのバッチ操作は、システムが例外が返されず、各行のステータスが成功であることを確認した場合にのみ成功します。
例外
Python向けTablestore 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を記録し、チケットを送信してください。
再試行ポリシー
Python向けTablestore SDKは、エラーが発生した場合に操作を自動的に再試行します。デフォルトの再試行ポリシーでは、最大再試行回数は20回、最大再試行間隔は3,000ミリ秒です。書き込み操作に関連するスロットリングエラーと内部サーバーエラーの再試行ポリシーについては、tablestore/retry.pyを参照してください。
RetryPolicyクラスを継承することで、再試行ポリシーをカスタマイズすることもできます。OTSClientオブジェクトを構築するときに、カスタム再試行ポリシーを渡します。
Python向けTablestore SDKは、以下の再試行ポリシーを提供します。
DefaultRetryPolicy:デフォルトの再試行ポリシー。読み取り操作のみが再試行されます。最大再試行回数は20回、最大再試行間隔は3,000ミリ秒です。
NoRetryPolicy:操作は再試行されません。
NoDelayRetryPolicy:遅延のない再試行ポリシー。このポリシーを使用する場合は注意が必要です。
WriteRetryPolicy:読み取りおよび書き込み操作が再試行されます。