

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tratamento de erros no AWS SDK for Java 2.x
<a name="handling-exceptions"></a>

Entender como e quando AWS SDK for Java 2.x as exceções são lançadas é importante para criar aplicativos de alta qualidade usando o SDK. As seções a seguir descrevem os casos diferentes de exceções lançadas pelo SDK e como processá-las da maneira apropriada.

## Por que exceções desmarcadas?
<a name="why-unchecked-exceptions"></a>

 AWS SDK para Java Ele usa exceções de tempo de execução (ou não verificadas) em vez de exceções verificadas pelos seguintes motivos:
+ Como permitir que desenvolvedores controlem os erros que desejam processar sem forçá-los a processar casos excepcionais com os quais não estão preocupados (e tornar o código excessivamente detalhado)
+ Para evitar problemas de escalabilidade inerentes a exceções marcadas em aplicativos grandes

Em geral, as exceções marcadas funcionam bem em escalas pequenas, mas podem se tornar problemáticas à medida que os aplicativos crescem e se tornam mais complexos.

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

 [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)é a exceção mais comum que você enfrentará ao usar AWS SDK para Java o. `AwsServiceException`é uma subclasse das mais gerais [SdkServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html). `AwsServiceException`s representam uma resposta de erro de um AWS service (Serviço da AWS). Por exemplo, se você tentar encerrar uma Amazon EC2 instância que não existe, Amazon EC2 retornará uma resposta de erro e todos os detalhes dessa resposta de erro serão incluídos na `AwsServiceException` resposta lançada. 

Ao encontrar um`AwsServiceException`, você sabe que sua solicitação foi enviada com sucesso para o AWS service (Serviço da AWS) , mas não pôde ser processada com sucesso. Isso pode ocorrer devido a erros nos parâmetros da solicitação ou problemas no lado do serviço.

 `AwsServiceException` fornece informações como:
+ Código de status HTTP retornado
+ Código de AWS erro retornado
+ Mensagem de erro detalhada do serviço na [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)classe
+  AWS ID de solicitação para a solicitação que falhou

Para alguns casos, uma subclasse de `AwsServiceException` específica do serviço é lançada para permitir que os desenvolvedores tenham o controle refinado do tratamento dos casos de erro nos blocos catch. A referência da API Java SDK para [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)exibe o grande número de `AwsServiceException` subclasses. Use os links da subclasse para detalhar e ver as exceções granulares lançadas por um serviço.

Por exemplo, os links a seguir para a referência da API do SDK mostram as hierarquias de exceções de alguns Serviços da AWS comuns. A lista de subclasses mostrada em cada página mostra as exceções específicas que seu código pode capturar.
+ [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)

Para saber mais sobre uma exceção, inspecione `errorCode` o [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)objeto. Você pode usar o valor do `errorCode` para pesquisar informações na API do guia de serviços. Por exemplo, se uma `S3Exception` for detectada e o valor de `AwsErrorDetails#errorCode()` for `InvalidRequest`, use a [lista de códigos de erro](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) na Referência da API do Amazon S3 para ver mais detalhes.

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

 [SdkClientException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkClientException.html)indica que ocorreu um problema dentro do código do cliente Java, ao tentar enviar uma solicitação para AWS ou ao tentar analisar uma resposta de AWS. Um geralmente `SdkClientException` é mais grave do que um `SdkServiceException` e indica um grande problema que está impedindo o cliente de fazer chamadas de serviço para AWS os serviços. Por exemplo, AWS SDK para Java ele lança uma, `SdkClientException` se nenhuma conexão de rede estiver disponível, quando você tenta chamar uma operação em um dos clientes.

## Exceções e comportamento de nova tentativa
<a name="retried-exceptions"></a>

O SDK for Java repete solicitações para [várias exceções do lado do cliente](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) e [para códigos de status HTTP](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) que ele recebe das respostas. AWS service (Serviço da AWS) Esses erros são tratados como parte do `RetryMode` legado que os clientes de serviço usam por padrão. A referência da API Java para `[RetryMode](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryMode.html)` descreve as várias maneiras pelas quais você pode configurar o modo.

Para personalizar as exceções e os códigos de status HTTP que acionam novas tentativas automáticas, configure seu cliente de serviço com uma `[RetryPolicy](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryPolicy.html)` que adicione instâncias `[RetryOnExceptionsCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/conditions/RetryOnExceptionsCondition.html)` e `[RetryOnStatusCodeCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/retry/conditions/RetryOnErrorCodeCondition.html)`.