Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Tratamento de exceções

Última atualização: Jun 28, 2026

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

    }
}