このトピックでは、Alibaba Cloud SDK V2.0 for Java の例外の種類と例外の処理方法について説明します。
例外の種類
Alibaba Cloud SDK V2.0 は、例外を次の種類に分類します。
TeaUnretryableException: この種類の例外は、ネットワークの問題が原因で発生します。リトライ回数が上限に達すると、TeaUnretryableException がスローされます。
exception.getLastRequestメソッドを呼び出すと、例外がスローされた API リクエストに関する情報を取得できます。TeaException: この種類の例外は、ビジネスエラーによって発生します。この種類の例外を処理するために、次の 3 つのパラメーターが提供されます。
code: 例外が発生したときに返されるエラーコード。
message: 例外が発生したときに返されるエラーメッセージ。メッセージには、例外がスローされた API リクエストの ID が含まれています。
data: 例外に対してサーバーによって返される詳細なエラー情報。
この例では、エラーメッセージは参照用にのみ表示されています。実際のビジネスシナリオでは、プロジェクトの例外を無視しないでください。例外の報告、ログの記録、再試行の実行などの操作を実行して、例外を適切に処理することをお勧めします。これにより、システムの堅牢性と安定性を確保できます。
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.tea.ValidateException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new com.aliyun.teaopenapi.models.Config();
// Resource Access Management (RAM) ユーザーの AccessKey ID を環境変数から取得します。
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// RAM ユーザーの AccessKey シークレットを環境変数から取得します。
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// リージョン ID を指定します。
config.setRegionId("<regionId>");
com.aliyun.ecs20140526.Client client = new com.aliyun.ecs20140526.Client(config);
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
try {
client.describeRegions(describeRegionsRequest);
} catch(TeaUnretryableException ue) {
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトの例外を決して無視しないでください。この例では、情報は参照用にのみ表示されています。
ue.printStackTrace();
// エラーメッセージを取得します。
System.out.println(ue.getMessage());
// リクエストを取得します。
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトの例外を決して無視しないでください。この例では、情報は参照用にのみ表示されています。
e.printStackTrace();
// エラーコードを取得します。
System.out.println(e.getCode());
// エラーメッセージを取得します。エラーメッセージにはリクエスト ID が含まれています。
System.out.println(e.getMessage());
// サーバーによって返される詳細なエラー情報を取得します。
System.out.println(e.getData());
}
}
}例外処理
Alibaba Cloud SDK V2.0 を使用して API 操作を呼び出すときに発生する可能性のある例外の解決策を見つける方法は次のとおりです。
OpenAPI Explorer 診断 ツールからリクエスト ID をコピーして、例外の原因と解決策を取得します。詳細については、「OpenAPI エラー診断」をご参照ください。
エラーコードに基づいて、クラウドサービスの API リファレンスで解決策を探します。
詳細については、「Java 用 Alibaba Cloud SDK についてのよくある質問」をご参照ください。
トラブルシューティングについては、アフターサービスにお問い合わせください。