

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 erreurs dans AWS SDK for Java 2.x
<a name="handling-exceptions"></a>

Il est important de comprendre comment et quand AWS SDK for Java 2.x les exceptions sont générées pour créer des applications de haute qualité à l'aide du 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 ?
<a name="why-unchecked-exceptions"></a>

 AWS SDK pour Java Utilise des exceptions d'exécution (ou non vérifiées) au lieu d'exceptions vérifié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)
<a name="sdkserviceexception-and-subclasses"></a>

 [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)est l'exception la plus courante que vous rencontrerez lors de l'utilisation du AWS SDK pour Java. `AwsServiceException`est une sous-classe de la catégorie plus générale [SdkServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html). `AwsServiceException`s représentent une réponse d'erreur provenant d'un Service 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 un`AwsServiceException`, 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](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)classe
+  AWS ID 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 [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)affiche le grand nombre de `AwsServiceException` 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.
+ [Amazon S3](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/model/S3Exception.html)
+ [DynamoDB](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/DynamoDbException.html)
+ [Amazon SQS](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SqsException.html)

Pour en savoir plus sur une exception, `errorCode` inspectez l'[AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)objet. Vous pouvez utiliser cette `errorCode` 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 cas`InvalidRequest`, utilisez la [liste des codes d'erreur](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) dans le manuel Amazon S3 API Reference pour en savoir plus.

## SdkClientException
<a name="sdkclientexception"></a>

 [SdkClientException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkClientException.html)indique qu'un problème s'est produit dans le code du client Java, soit lors de la tentative d'envoi d'une demande, AWS soit lors de la tentative d'analyse d'une réponse de AWS. Un `SdkClientException` 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, il AWS SDK pour Java lance une alerte `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
<a name="retried-exceptions"></a>

Le SDK for Java réessaie les demandes relatives à [plusieurs exceptions côté client](https://github.com/aws/aws-sdk-java-v2/blob/13985e0668a9a0b12ad331644e3c4fd1385c2cd7/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/retry/SdkDefaultRetrySetting.java#L79C41-L79C41) et aux codes d'[état HTTP qu'il reçoit des](https://github.com/aws/aws-sdk-java-v2/blob/13985e0668a9a0b12ad331644e3c4fd1385c2cd7/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/retry/SdkDefaultRetrySetting.java#L72C31-L72C31) réponses. Service AWS Ces erreurs sont traitées dans le cadre de l'héritage `RetryMode` que les clients du service utilisent par défaut. La référence de l'API Java pour `[RetryMode](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryMode.html)` 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](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryPolicy.html)` ajout `[RetryOnExceptionsCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/conditions/RetryOnExceptionsCondition.html)` et des `[RetryOnStatusCodeCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/retry/conditions/RetryOnErrorCodeCondition.html)` instances.