Gérez les exceptions TeaException et TeaUnretryableException levées par Alibaba Cloud SDK V2.0 for .NET lors des appels d'API.
Alibaba Cloud SDK V2.0 for .NET lève deux types d'exceptions lors des appels d'API :
TeaUnretryableException : Cette exception survient lorsque la limite de tentatives est atteinte en raison d'échecs au niveau réseau, tels que des problèmes de connectivité, des échecs de résolution DNS ou des délais d'attente dépassés. Appelez
exception.getLastRequestpour obtenir les détails de la requête ayant épuisé toutes les tentatives.-
TeaException : Levée lorsque le service renvoie une réponse d'erreur due à des paramètres invalides, des permissions manquantes, des conflits de ressources ou des limites de quota. Cette exception expose trois propriétés :
code: le code d'erreur retourné par le service.message: le message d'erreur, incluant l'ID de la requête ayant échoué.data: informations complémentaires sur l'erreur fournies par le service. Le champdata["Recommend"]contient une URL de diagnostic.
Exemple
L'exemple suivant appelle DescribeInstances et gère les deux types d'exceptions. Avant d'exécuter cet exemple, définissez les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET avec votre AccessKey ID et votre 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
{
/**
* 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);
}
}
}
}