すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:例外の処理

最終更新日:Jan 15, 2025

このトピックでは、Classic SDK の例外の種類と例外の処理方法について説明します。

Classic SDK では、例外はサーバーで発生する例外とクライアントで発生する例外の 2 つの種類に分類されます。レスポンスに ServerException が含まれている場合、例外はサーバーで発生しています。レスポンスに ClientException が含まれている場合、例外はクライアントで発生しています。例外が発生し、サーバーがリクエストを受信しない場合、例外の原因となったリクエストの ID を取得することはできません。サーバーが例外の原因となったリクエストを受信した場合、リクエスト ID を取得できます。その後、リクエスト ID を使用して、Alibaba Cloud のテクニカルサポートに支援を依頼できます。

using System;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Ecs.Model.V20140526;
namespace AlibabaCloud.SDK.Sample

{
    class Program
    {
        static void Main(string[] args)
        {
            // クライアントインスタンスを作成してリクエストを開始します。
            IClientProfile profile = DefaultProfile.GetProfile(
                // リージョン ID。
                "<your-region-id>",
                // 環境変数からResource Access Management (RAM) ユーザーの AccessKey ID を取得します。
                Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
                Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            DefaultAcsClient client = new DefaultAcsClient(profile);

            try
            {
                // リクエストを構築します。
                DescribeInstancesRequest request = new DescribeInstancesRequest();
                request.PageSize = 10;

                // リクエストを開始し、レスポンスを取得します。
                DescribeInstancesResponse response = client.GetAcsResponse(request);
                System.Console.WriteLine(response.TotalCount);
            }
            catch (ServerException e)
            {
                System.Console.WriteLine(e.ToString());
                // エラー処理ロジックを指定できます。
                // 例:エラー情報を表示します。
                Console.WriteLine("ErrorCode=" + e.ErrorCode);
                Console.WriteLine("ErrorMessage=" + e.ErrorMessage);
                // エラーが解決しない場合は、チケットを送信し、リクエスト ID を提供してテクニカルサポートを依頼できます。
                Console.WriteLine("ErrorCode=" + e.RequestId);
            }
            catch (ClientException ex)
            {
                System.Console.WriteLine(ex.ToString());
                // エラー処理ロジックを指定できます。
                // 例:エラー情報を表示します。
                Console.WriteLine("ErrorCode=" + ex.ErrorCode);
                Console.WriteLine("ErrorMessage=" + ex.ErrorMessage);
            }
        }
    }
}