All Products
Search
Document Center

Alibaba Cloud SDK:Penanganan pengecualian

Last Updated:Jun 05, 2026

Tangani TeaException dan TeaUnretryableException yang dilemparkan oleh Alibaba Cloud SDK V2.0 untuk .NET selama pemanggilan API.

Alibaba Cloud SDK V2.0 untuk .NET melemparkan dua jenis pengecualian selama pemanggilan API:

  • TeaUnretryableException: Dilemparkan ketika batas percobaan ulang tercapai akibat kegagalan tingkat jaringan, seperti masalah konektivitas, kegagalan resolusi DNS, atau waktu permintaan habis. Panggil exception.getLastRequest untuk mengambil detail permintaan yang telah menghabiskan semua percobaan ulang.

  • TeaException: Dilemparkan ketika layanan mengembalikan respons kesalahan karena parameter tidak valid, izin yang tidak mencukupi, konflik resource, atau batas kuota. Pengecualian ini menyediakan tiga properti:

    • code: kode kesalahan yang dikembalikan oleh layanan.

    • message: pesan kesalahan, termasuk ID permintaan untuk pemanggilan API yang gagal.

    • data: detail kesalahan tambahan dari layanan. data["Recommend"] berisi URL diagnostik.

Contoh

Contoh berikut memanggil DescribeInstances dan menangani kedua jenis pengecualian tersebut. Sebelum menjalankan contoh ini, atur variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke ID AccessKey dan Rahasia AccessKey Anda.

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 
    {

        /**
         * Inisialisasi client dengan ID AccessKey dan Rahasia AccessKey.
         * @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
            {
                // Wajib diisi. Atur variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID.
                AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // Wajib diisi. Atur variabel lingkungan 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)
            {
                // Pesan kesalahan
                Console.WriteLine(error.Message);
                // URL diagnostik
                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 }
                });
                // Pesan kesalahan
                Console.WriteLine(error.Message);
                // URL diagnostik
                Console.WriteLine(error.Data["Recommend"]);
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
        }

    }
}