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

Alibaba Cloud SDK:例外処理

最終更新日:Jun 05, 2026

API 呼び出し中に Alibaba Cloud SDK V2.0 for .NET がスローする TeaException と TeaUnretryableException を処理します。

Alibaba Cloud SDK V2.0 for .NET は、API 呼び出し中に次の 2 種類の例外をスローします。

  • TeaUnretryableException:接続性の問題、DNS 名前解決の失敗、リクエストタイムアウトなどのネットワークレベルの障害が原因でリトライ制限に達した場合にスローされます。exception.getLastRequest を呼び出して、すべての再試行が失敗したリクエストの詳細を取得します。

  • TeaException:無効なパラメータ、権限不足、リソースの競合、クォータ制限などが原因でサービスがエラー応答を返した場合にスローされます。この例外には、次の 3 つのプロパティがあります。

    • code:サービスから返されたエラーコード。

    • message:失敗した API 呼び出しのリクエスト ID を含むエラーメッセージ。

    • data:サービスからの追加のエラー詳細。data["Recommend"] には診断 URL が含まれています。

次の例では、DescribeInstances を呼び出し、両方の例外タイプを処理します。この例を実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を AccessKey ID と AccessKey secret に設定してください。

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

using Tea;
using Tea.Utils;

namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        /**
         * AccessKey ID と AccessKey secret でクライアントを初期化します。
         * @param accessKeyId
         * @param accessKeySecret
         * @return Client
         * @throws Exception
         */
        public static AlibabaCloud.SDK.Ecs20140526.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                // 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数を設定してください。
                AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定してください。
                AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
            };
            config.Endpoint = "ecs.cn-qingdao.aliyuncs.com";
            return new AlibabaCloud.SDK.Ecs20140526.Client(config);
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.SDK.Ecs20140526.Client client = CreateClient();
            AlibabaCloud.SDK.Ecs20140526.Models.DescribeInstancesRequest describeInstancesRequest = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeInstancesRequest
            {
                RegionId = "cn-qingdao",
            };
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            try
            {
                client.DescribeInstancesWithOptions(describeInstancesRequest, runtime);
            }
            catch (TeaException error)
            {
                // エラーメッセージ
                Console.WriteLine(error.Message);
                // 診断 URL
                Console.WriteLine(error.Data["Recommend"]);
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
            catch (Exception _error)
            {
                TeaException error = new TeaException(new Dictionary<string, object>
                {
                    { "message", _error.Message }
                });
                // エラーメッセージ
                Console.WriteLine(error.Message);
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
        }

    }
}