Todos los productos
Search
Centro de documentos

Alibaba Cloud SDK:Manejo de excepciones

Última actualización: Sep 05, 2026

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

    }
}