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.getLastRequestuntuk 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);
}
}
}
}