Trate as exceções TeaException e TeaUnretryableException geradas pelo Alibaba Cloud SDK V2.0 for .NET durante chamadas de API.
O Alibaba Cloud SDK V2.0 for .NET gera dois tipos de exceção durante chamadas de API:
TeaUnretryableException: gerada quando o limite de novas tentativas é atingido devido a falhas no nível de rede, como problemas de conectividade, falhas na resolução de DNS ou tempo limite de requisição. Chame
exception.getLastRequestpara obter detalhes sobre a requisição que esgotou todas as tentativas.-
TeaException: gerada quando o serviço retorna uma resposta de erro causada por parâmetros inválidos, falta de permissões, conflitos de recursos ou limites de cota. Essa exceção fornece três propriedades:
code: código de erro retornado pelo serviço.message: mensagem de erro, incluindo o ID da requisição da chamada de API com falha.data: detalhes adicionais do erro fornecidos pelo serviço.data["Recommend"]contém uma URL de diagnóstico.
Exemplo
O exemplo a seguir chama DescribeInstances e trata ambos os tipos de exceção. Antes de executar o exemplo, defina as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET com seu AccessKey ID e 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);
}
}
}
}