O SDK V2.0 define quatro tipos de exceção. Saiba como identificar e tratar cada uma delas.
Tipos de exceção
|
Tipo de exceção |
Descrição |
Ação recomendada |
|
UnretryableException |
Exceção relacionada à rede, geralmente lançada quando o número máximo de tentativas se esgota devido a um problema de conectividade. |
|
|
ClientException |
Exceção do lado do cliente com código de status HTTP na faixa de 400 a 499, causada por problemas como parâmetros de solicitação inválidos, falhas de autenticação ou permissões insuficientes. |
No Troubleshoot, copie o |
|
ServerException |
Exceção do lado do servidor com código de status HTTP na faixa de 500 a 599, indicando um problema no serviço da Alibaba Cloud, como erro interno do servidor ou indisponibilidade do serviço. |
Tente executar a operação novamente. Se o problema persistir após várias tentativas, entre em contato conosco para obter ajuda. |
|
ThrottlingException |
Lançada quando uma chamada de API aciona o mecanismo de limitação da Alibaba Cloud. |
Ajuste a frequência das chamadas de API para cumprir os limites de taxa definidos na documentação da API. |
ClientException, ServerException e ThrottlingException expõem os seguintes parâmetros para solução de problemas:
request_id: identificador exclusivo da solicitação.
status_code: código de status HTTP retornado pela OpenAPI.
code: código de erro retornado pela OpenAPI.
message: mensagem de erro retornada pela OpenAPI.
data: informações detalhadas retornadas pelo servidor quando o erro ocorreu.
Código de exemplo:
Este exemplo apenas imprime a saída para fins de demonstração. Em produção, trate as exceções adequadamente: propague-as, registre-as em log ou tente uma recuperação para garantir a estabilidade do sistema.
import os
from alibabacloud_ecs20140526.client import Client
from alibabacloud_ecs20140526.models import DescribeImagesRequest
from alibabacloud_tea_openapi.exceptions import (
ClientException,
ServerException,
ThrottlingException
)
from alibabacloud_tea_openapi.models import Config
from darabonba.exceptions import UnretryableException
'''Elastic Compute Service example'''
# Initialize Config.
config = Config(
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
region_id='<REGION_ID>'
)
try:
client = Client(config)
# Initialize Request.
request = DescribeImagesRequest(image_id='<IMAGE_ID>', region_id='<REGION_ID>')
response = client.describe_images(request)
except UnretryableException as e:
# A network exception occurred. This example only prints the exception. Handle exceptions with care. Do not ignore them in your projects.
print(e)
except (ClientException, ServerException, ThrottlingException) as e:
# A client exception occurred. This example only prints the exception. Handle exceptions with care. Do not ignore them in your projects.
print(f"RequestId:{e.request_id},StatusCode:{e.status_code},Message:{e.message},Data:{e.data}")
Resolver exceções
Se ocorrer uma exceção durante uma chamada de API, resolva-a das seguintes maneiras:
Utilize o Troubleshoot: copie o RequestId da exceção para diagnosticar o erro e encontrar sua causa e solução. Para mais informações, consulte Solução de problemas da OpenAPI.
Busque uma solução na documentação do produto relevante com base no código de erro da exceção. Por exemplo, para códigos de erro do ECS, consulte Códigos de erro comuns.
Verifique se existe uma solução disponível nas Perguntas frequentes.
Entre em contato conosco para obter assistência.