Gestione las excepciones TeaException y TeaUnretryableException que lanza Alibaba Cloud SDK V2.0 for .NET durante las llamadas a la API.
Alibaba Cloud SDK V2.0 for .NET lanza dos tipos de excepciones durante las llamadas a la API:
TeaUnretryableException: se lanza cuando se alcanza el límite de reintentos debido a fallas en la red, como problemas de conectividad, errores de resolución DNS o tiempos de espera agotados. Llame a
exception.getLastRequestpara obtener los detalles de la solicitud que agotó todos los reintentos.-
TeaException: se lanza cuando el servicio devuelve una respuesta de error por parámetros no válidos, falta de permisos, conflictos de recursos o límites de cuota. Esta excepción proporciona tres propiedades:
code: el código de error que devuelve el servicio.message: el mensaje de error, que incluye el identificador de la solicitud con errores.data: detalles adicionales del error proporcionados por el servicio.data["Recommend"]contiene una URL de diagnóstico.
Ejemplo
En el ejemplo a continuación se llama a DescribeInstances y se gestionan ambos tipos de excepciones. Antes de ejecutar el ejemplo, establezca las variables de entorno ALIBABA_CLOUD_ACCESS_KEY_ID y ALIBABA_CLOUD_ACCESS_KEY_SECRET con su AccessKey ID y su 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);
}
}
}
}