Tablestore PHP SDK は、例外をスローすることでエラーを処理します。このトピックでは、Tablestore のエラー処理、例外情報、および再試行ポリシーについて説明します。
方法
Tablestore PHP SDK は、例外をスローすることでエラーを処理します。API 呼び出しが例外なく完了した場合、操作は成功です。そうでない場合は失敗です。
BatchGetRow や BatchWriteRow などのバッチ操作では、例外の有無と各行のステータスの両方を確認する必要があります。すべての行が正常に処理された場合にのみ、API 呼び出し全体が成功したと見なされます。
例外
Tablestore PHP SDK は、OTSClientException と OTSServerException の 2 種類の例外を定義しています。どちらの例外も、基本クラスである Exception を継承します。
OTSClientException: SDK 内部で発生する例外です。たとえば、パラメーターが不正に設定された場合などがあります。-
OTSServerException: サーバーから返されたエラーメッセージを基に解析される、サーバー側のエラーです。OTSServerExceptionオブジェクトには、次のメンバーが含まれています。getHttpStatus(): HTTP ステータスコードです。200や404などが該当します。getOTSErrorCode(): Tablestore から返される、エラーの種類を示す文字列です。getOTSErrorMessage(): Tablestore から返される、エラーの詳細な説明です。getRequestId(): リクエストを一意に識別する汎用一意識別子 (UUID) です。問題を解決できない場合は、このRequestIdを記録し、チケットを起票する。
再試行
SDK は、エラーが発生したときに操作を自動的に再試行します。デフォルトのポリシーでは、最大 3 回、最大再試行間隔
2000ms で再試行します。詳細については、「再試行」をご参照ください。OTSClientConfigのRetryPolicyを変更することで、再試行ポリシーをカスタマイズすることもできます。
SDK は、次の再試行ポリシーを実装しています。
DefaultRetryPolicy: デフォルトの再試行ポリシーです。このポリシーは、最大 3 回、最大再試行間隔
2000ms で操作を再試行します。読み取り操作におけるスロットリング関連のエラーおよびサーバー側の内部エラーに適用されます。NoRetryPolicy: 再試行は実行されません。