Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion des exceptions pour AWS SDK for Java 2.x
Comprendre comment et quand le kit AWS SDK for Java 2.x lève des exceptions est important pour développer des applications de grande qualité à l'aide du kit SDK. Les sections suivantes décrivent les différents cas d'exceptions levées par le kit SDK et la manière de les gérer de manière appropriée.
Pourquoi des exceptions non contrôlées ?
Le kit AWS SDK for Java utilise les exceptions du runtime (ou exceptions non contrôlées) à la place des exceptions contrôlées pour les raisons suivantes :
-
Permettre aux développeurs un contrôle extrêmement précis des erreurs qu'ils veulent gérer sans les forcer à gérer les cas exceptionnels par lesquels ils ne sont pas concernés (rendant alors leur code excessivement détaillé)
-
Pour éviter les problèmes d'évolutivité inhérents aux exceptions contrôlées dans les grandes applications
En général, les exceptions contrôlées fonctionnent bien à petite échelle, mais peuvent devenir problématiques au fur et à mesure que les applications se développent et deviennent plus complexes.
AwsServiceException (et sous-classes)
AwsServiceExceptionAwsServiceException
est une sous-classe de la catégorie plus générale SdkServiceExceptionAwsServiceException
s représentent une réponse d'erreur provenant d'unService AWS. Par exemple, si vous essayez de mettre fin à une Amazon EC2 instance qui n'existe pas, vous Amazon EC2 renverrez une réponse d'erreur et tous les détails de cette réponse d'erreur seront inclus dans le AwsServiceException
message envoyé.
Lorsque vous rencontrez unAwsServiceException
, vous savez que votre demande a été envoyée avec succès au Service AWS mais n'a pas pu être traitée avec succès. Cela peut être dû à une erreur des paramètres de la demande ou à un problème côté service.
AwsServiceException
vous fournit des informations telles que :
-
Code d'état HTTP retourné
-
Code AWS d'erreur renvoyé
-
Message d'erreur détaillé du service de la AwsErrorDetails
classe -
AWSID de demande pour la demande qui a échoué
Dans la plupart des cas, une sous-classe spécifique au service AwsServiceException
est créée pour permettre aux développeurs de contrôler avec précision la gestion des cas d'erreur par le biais de « catch blocks ». La référence de l'API du SDK Java pour AwsServiceExceptionAwsServiceException
sous-classes. Utilisez les liens des sous-classes pour effectuer une analyse détaillée des exceptions générées par un service.
Par exemple, les liens suivants vers la référence de l'API du SDK présentent les hiérarchies d'exceptions pour certaines exceptions courantes. Services AWS La liste des sous-classes figurant sur chaque page indique les exceptions spécifiques que votre code peut intercepter.
Pour en savoir plus sur une exception, errorCode
inspectez l'AwsErrorDetailserrorCode
valeur pour rechercher des informations dans l'API du guide des services. Par exemple, si un S3Exception
est détecté et que sa AwsErrorDetails#errorCode()
valeur est le casInvalidRequest
, utilisez la liste des codes d'erreur dans le manuel Amazon S3 API Reference pour obtenir plus de détails.
SdkClientException
SdkClientExceptionSdkClientException
est généralement plus grave qu'un SdkServiceException
et indique un problème majeur qui empêche le client de faire des appels de service aux AWS services. Par exemple, le kit AWS SDK for Java génère une exception SdkClientException
si aucune connexion réseau n'est disponible lorsque vous essayez d'appeler une opération sur l'un des clients.
Exceptions et comportement en cas de nouvelle tentative
Le SDK for Java réessaie les demandes relatives à plusieurs exceptions côté clientRetryMode
que les clients du service utilisent par défaut. La référence de l'API Java pour RetryMode
décrit les différentes manières de configurer le mode.
Pour personnaliser les exceptions et les codes d'état HTTP qui déclenchent des tentatives automatiques, configurez votre client de service avec un RetryPolicy
ajout RetryOnExceptionsCondition
et des RetryOnStatusCodeCondition
instances.