

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Manejo de errores en el AWS SDK for Java 2.x
<a name="handling-exceptions"></a>

Comprender cómo y cuándo se producen AWS SDK for Java 2.x excepciones es importante para crear aplicaciones de alta calidad con el SDK. En las siguientes secciones se describen los diferentes casos de excepciones que produce el SDK y cómo tratarlas correctamente.

## ¿Por qué excepciones no controladas?
<a name="why-unchecked-exceptions"></a>

 AWS SDK para Java Utiliza excepciones en tiempo de ejecución (o no comprobadas) en lugar de excepciones comprobadas por los siguientes motivos:
+ Para permitir a los desarrolladores un control minucioso de los errores que desean administrar sin obligarles a abordar casos excepcionales que no les preocupan (o que les obligan a detallar su código en exceso)
+ Para evitar problemas de escalabilidad inherentes a las excepciones controladas en aplicaciones grandes

En general, las excepciones controladas funcionan bien a pequeña escala, pero pueden ser problemáticas cuando las aplicaciones crecen y se vuelven más complejas.

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

 [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)es la excepción más común que experimentará al AWS SDK para Java usar. `AwsServiceException`es una subclase de las más generales [SdkServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkServiceException.html). `AwsServiceException`s representan una respuesta de error de un Servicio de AWS. Por ejemplo, si intentas terminar una Amazon EC2 instancia que no existe, Amazon EC2 devolverá una respuesta de error y todos los detalles de esa respuesta de error se incluirán en la `AwsServiceException` que se arroje. 

Cuando encuentres una`AwsServiceException`, sabrás que tu solicitud se envió correctamente, Servicio de AWS pero que no se pudo procesar correctamente. Esto puede ser debido a errores en los parámetros de la solicitud o a problemas en el servicio.

 `AwsServiceException` proporciona información como:
+ Código de estado HTTP devuelto
+ Código AWS de error devuelto
+ Mensaje de error detallado del servicio de la [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)clase
+  AWS ID de solicitud de la solicitud fallida

En algunos casos, se produce una subclase de `AwsServiceException` para permitir a los desarrolladores un control minucioso del tratamiento de casos de error a través de bloques de captura. La referencia de la API del SDK de Java [AwsServiceException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsServiceException.html)muestra la gran cantidad de `AwsServiceException` subclases. Utilice los enlaces de las subclases para profundizar y ver las excepciones granulares generadas por un servicio.

Por ejemplo, los siguientes enlaces a la referencia API del SDK muestran las jerarquías de excepciones para algunos Servicios de AWS comunes. La lista de subclases que se muestra en cada página muestra las excepciones específicas que su código puede 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 obtener más información sobre una excepción, inspeccione `errorCode` el [AwsErrorDetails](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/exception/AwsErrorDetails.html)objeto. Puede usar el valor `errorCode` para buscar información en la API de la guía de servicios. Por ejemplo, si se captura un `S3Exception` y el valor `AwsErrorDetails#errorCode()` es `InvalidRequest`, utilice la [lista de códigos de error](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) de la Referencia de la API de Amazon S3 para ver más detalles.

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

 [SdkClientException](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/exception/SdkClientException.html)indica que se ha producido un problema en el código del cliente de Java, ya sea al intentar enviar una solicitud AWS o al analizar una respuesta desde él AWS. Un `SdkClientException` es generalmente más grave que uno e indica un problema importante que impide que el cliente realice llamadas de servicio a AWS los servicios. `SdkServiceException` Por ejemplo, `SdkClientException` si no hay ninguna conexión de red disponible cuando se intenta llamar a una operación en uno de los clientes. AWS SDK para Java 

## Excepciones y comportamiento de reintentos
<a name="retried-exceptions"></a>

El SDK para Java vuelve a intentar las solicitudes de varias [excepciones del lado del 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) y de los [códigos de estado 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 recibe de las respuestas. Servicio de AWS Estos errores se gestionan como parte del `RetryMode` heredado que los clientes de servicios utilizan de forma predeterminada. La referencia de la API de Java para `[RetryMode](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryMode.html)` describe las distintas formas de configurar el modo.

Para personalizar las excepciones y los códigos de estado HTTP que activan los reintentos automáticos, configure su cliente de servicio con una `[RetryPolicy](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/RetryPolicy.html)` que añada instancias `[RetryOnExceptionsCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/retry/conditions/RetryOnExceptionsCondition.html)` y `[RetryOnStatusCodeCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/retry/conditions/RetryOnErrorCodeCondition.html)`.