Le SDK V2.0 définit quatre types d'exceptions. Cette rubrique explique comment les identifier et les traiter.
Types d'exceptions
|
Type d'exception |
Description |
Action recommandée |
|
UnretryableException |
Exception réseau, généralement levée lorsque le nombre maximal de tentatives est atteint en raison d'un problème de connectivité. |
|
|
ClientException |
Exception côté client avec un code de statut HTTP compris entre 400 et 499, causée par des paramètres de requête invalides, des échecs d'authentification ou des autorisations insuffisantes. |
Dans Troubleshoot, copiez le |
|
ServerException |
Exception côté serveur avec un code de statut HTTP compris entre 500 et 599, indiquant un problème de service Alibaba Cloud tel qu'une erreur interne ou une indisponibilité du service. |
Réessayez l'opération. Si le problème persiste après plusieurs tentatives, contactez-nous pour obtenir de l'aide. |
|
ThrottlingException |
Levée lorsqu'un appel d'API déclenche le mécanisme de limitation de débit d'Alibaba Cloud. |
Ajustez la fréquence de vos appels d'API afin de respecter les limites de débit spécifiées dans la documentation de l'API. |
ClientException, ServerException et ThrottlingException exposent les paramètres suivants pour le dépannage :
request_id : identifiant unique de la requête.
status_code : code de statut HTTP renvoyé par OpenAPI.
code : code d'erreur renvoyé par OpenAPI.
message : message d'erreur renvoyé par OpenAPI.
data : informations détaillées renvoyées par le serveur lors de l'erreur.
Exemple de code :
Cet exemple se contente d'afficher la sortie à titre de démonstration. En production, traitez correctement les exceptions : propagez-les, journalisez-les ou tentez une récupération afin de garantir la stabilité du système.
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}")
Résolution des exceptions
Si une exception survient lors d'un appel d'API, résolvez-la des manières suivantes :
Dans Troubleshoot, copiez le RequestId de l'exception pour diagnostiquer l'erreur et en identifier la cause ainsi que la solution. Pour plus d'informations, consultez Dépannage OpenAPI.
Recherchez une solution dans la documentation du produit concerné en vous basant sur le code d'erreur de l'exception. Par exemple, pour les codes d'erreur ECS, consultez Codes d'erreur courants.
Vérifiez si une solution existe dans la FAQ.
Contactez-nous pour obtenir de l'aide.