Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud SDK:Exception handling

Son Güncelleme:Oct 07, 2026

Alibaba Cloud SDK V2.0 for .NET tarafından API çağrıları sırasında oluşturulan TeaException ve TeaUnretryableException özel durumlarını işleyin.

Alibaba Cloud SDK V2.0 for .NET, API çağrıları sırasında iki tür özel durum oluşturur:

  • TeaUnretryableException: Bağlantı sorunları, DNS çözümleme hataları veya istek zaman aşımı gibi ağ seviyesindeki arızalar nedeniyle yeniden deneme sınırına ulaşıldığında oluşturulur. Tüm yeniden denemeleri tüketen isteğin ayrıntılarını almak için exception.getLastRequest yöntemini çağırın.

  • TeaException: Geçersiz parametreler, eksik izinler, kaynak çakışmaları veya kota sınırları nedeniyle hizmet bir hata yanıtı döndürdüğünde oluşturulur. Bu özel durum üç özellik sağlar:

    • code: hizmet tarafından döndürülen hata kodu.

    • message: başarısız API çağrısı için istek kimliğini içeren hata mesajı.

    • data: hizmetten gelen ek hata ayrıntıları. data["Recommend"] bir tanılama URL'si içerir.

Örnek

Aşağıdaki örnek, DescribeInstances yöntemini çağırır ve her iki özel durum türünü de işler. Örneği çalıştırmadan önce, ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET ortam değişkenlerini AccessKey ID'nize ve AccessKey secret'ınıza ayarlayın.

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 
    {

        /**
         * Initialize the client with an AccessKey ID and 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
            {
                // Required. Set the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable.
                AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // Required. Set the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable.
                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)
            {
                // Error message
                Console.WriteLine(error.Message);
                // Diagnostics 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 }
                });
                // Error message
                Console.WriteLine(error.Message);
                // Diagnostics URL
                Console.WriteLine(error.Data["Recommend"]);
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
        }

    }
}