

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Behandlung von Fehlern in der AWS SDK for Java 2.x
<a name="handling-exceptions"></a>

Für die Entwicklung hochwertiger Anwendungen mit dem AWS SDK for Java 2.x SDK ist es wichtig zu verstehen, wie und wann Ausnahmen ausgelöst werden. In den folgenden Abschnitten werden die verschiedenen Fälle von Ausnahmen beschrieben, die vom SDK ausgelöst werden, und wie sie korrekt verarbeitet werden.

## Warum ungeprüfte Ausnahmen?
<a name="why-unchecked-exceptions"></a>

Der AWS SDK für Java verwendet aus den folgenden Gründen Laufzeitausnahmen (oder ungeprüfte Ausnahmen) anstelle von geprüften Ausnahmen:
+ Entwickler erhalten genaue Kontrolle über die Fehler, auf die sie eingehen möchten. Sie werden aber nicht dazu gezwungen, auftretende Ausnahmen zu verarbeiten, für die sie sich nicht interessieren (was den Code übermäßig aufblähen würde).
+ Skalierbarkeitsprobleme durch geprüfte Ausnahmen in großen Anwendungen werden verhindert.

Im Allgemeinen eignen sich geprüfte Ausnahmen gut im kleinen Rahmen. Wenn Anwendungen wachsen und komplexer werden, können sie allerdings zu Problemen führen.

## AwsServiceException (und Unterklassen)
<a name="sdkserviceexception-and-subclasses"></a>

 [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)ist die häufigste Ausnahme, die bei der AWS SDK für Java Verwendung von auftritt. `AwsServiceException`ist eine Unterklasse der [SdkServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html)allgemeineren. `AwsServiceException`s steht für eine Fehlerantwort von einem AWS-Service. Wenn Sie beispielsweise versuchen, eine Amazon EC2 Instanz zu beenden, die nicht existiert, Amazon EC2 wird eine Fehlerantwort zurückgegeben, und alle Details dieser Fehlerantwort werden in der `AwsServiceException` ausgegebenen Antwort enthalten. 

Wenn Sie auf eine stoßen`AwsServiceException`, wissen Sie, dass Ihre Anfrage erfolgreich an die gesendet wurde, AWS-Service aber nicht erfolgreich bearbeitet werden konnte. Dies kann an Fehlern in den Parametern der Anforderung oder an Problemen auf Seiten des Services liegen.

 `AwsServiceException` gibt Ihnen Informationen wie z. B.:
+ zurückgegebener HTTP-Statuscode
+  AWS Fehlercode zurückgegeben
+ Detaillierte Fehlermeldung des Dienstes in der [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)Klasse
+  AWS Anforderungs-ID für die fehlgeschlagene Anfrage

In den meisten Fällen `AwsServiceException` wird eine dienstspezifische Unterklasse von ausgelöst, um Entwicklern eine genaue Kontrolle über die Behandlung von Fehlerfällen durch Catch-Blöcke zu ermöglichen. In der Java-SDK-API-Referenz für [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)wird die große Anzahl von Unterklassen angezeigt. `AwsServiceException` Verwenden Sie die Unterklassen-Links, um sich die detaillierten Ausnahmen anzusehen, die von einem Dienst ausgelöst wurden.

Die folgenden Links zur SDK-API-Referenz zeigen beispielsweise die Ausnahmehierarchien für einige häufig vorkommende Ausnahmen. AWS-Services Die Liste der Unterklassen auf den einzelnen Seiten zeigt die spezifischen Ausnahmen, die Ihr Code catch kann.
+ [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)

Um mehr über eine Ausnahme zu erfahren, überprüfen Sie die `errorCode` auf dem [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)Objekt befindlichen. Sie können den `errorCode` Wert verwenden, um Informationen in der Service Guide-API nachzuschlagen. Wenn beispielsweise ein abgefangen `S3Exception` wird und der `AwsErrorDetails#errorCode()` Wert lautet`InvalidRequest`, verwenden Sie die [Liste der Fehlercodes](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) in der Amazon S3 S3-API-Referenz, um weitere Informationen zu erhalten.

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

 [SdkClientException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkClientException.html)gibt an, dass im Java-Client-Code ein Problem aufgetreten ist, entweder beim Versuch, eine Anfrage an zu senden, AWS oder beim Versuch, eine Antwort von AWS zu analysieren. An `SdkClientException` ist im Allgemeinen schwerwiegender als ein `SdkServiceException` und weist auf ein schwerwiegendes Problem hin, das den Client daran hindert, Serviceanfragen an AWS Dienste zu tätigen. Dies ist beispielsweise der AWS SDK für Java Fall, `SdkClientException` wenn keine Netzwerkverbindung verfügbar ist, wenn Sie versuchen, einen Vorgang auf einem der Clients aufzurufen.

## Ausnahmen und Wiederholungsverhalten
<a name="retried-exceptions"></a>

Das SDK for Java wiederholt Anfragen für mehrere [clientseitige Ausnahmen](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) und für [HTTP-Statuscodes](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), die es aus Antworten erhält. AWS-Service Diese Fehler werden als Teil der Legacy-Version behandelt`RetryMode`, die Service-Clients standardmäßig verwenden. In der Java-API-Referenz für `[RetryMode](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryMode.html)` werden die verschiedenen Möglichkeiten beschrieben, wie Sie den Modus konfigurieren können.

Um die Ausnahmen und HTTP-Statuscodes, die automatische Wiederholungen auslösen, anzupassen, konfigurieren Sie Ihren Service-Client mit einem`[RetryPolicy](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryPolicy.html)`, der `[RetryOnStatusCodeCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/retry/conditions/RetryOnErrorCodeCondition.html)` Instanzen hinzufügt`[RetryOnExceptionsCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/conditions/RetryOnExceptionsCondition.html)`.