Tratamiento de excepciones - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Tratamiento de excepciones

Saber cómo y cuándo AWS SDK para Java produce 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é usar excepciones no controladas?

AWS SDK para Java utiliza excepciones en tiempo de ejecución (o no controladas) en lugar de excepciones controladas 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.

Para obtener más información sobre el uso de excepciones controladas y no controladas, consulte:

AmazonServiceException (y sus subclases)

AmazonServiceException es la excepción que se produce con más frecuencia cuando se usa AWS SDK para Java. Esta excepción representa una respuesta de error de un servicio de Servicio de AWS. Por ejemplo, si intenta terminar una instancia Amazon EC2 que no existe, EC2 devolverá una respuesta de error y todos los detalles de dicha respuesta de error se incluirán en la excepción AmazonServiceException que se produce. En algunos casos, se produce una subclase de AmazonServiceException para permitir a los desarrolladores un control minucioso del tratamiento de casos de error a través de bloques de captura.

Cuando encuentre una AmazonServiceException, sabrá que la solicitud se ha enviado correctamente al Servicio de AWS, pero que no se ha podido procesar correctamente. Esto puede ser debido a errores en los parámetros de la solicitud o a problemas en el servicio.

AmazonServiceException proporciona información como:

  • Código de estado HTTP devuelto

  • Código de error de AWS devuelto

  • Mensaje de error detallado del servicio

  • ID de solicitud de AWS de la solicitud que ha producido un error

AmazonServiceException también incluye información acerca de si el error de la solicitud se debió a un error de la entidad que hizo la llamada (una solicitud con valores no permitidos) o un error del servicio de Servicio de AWS (un error interno del servicio).

AmazonClientException

AmazonClientException indica que se ha producido un problema en el código del cliente de Java, ya sea al intentar enviar una solicitud a AWS o al intentar analizar una respuesta de AWS. Una AmazonClientException es, por lo general, más grave que una AmazonServiceException, e indica un problema importante que impide que el cliente haga llamadas de servicio a los servicios de AWS. Por ejemplo, AWS SDK para Java produce una excepción AmazonClientException si no está disponible la conexión de red cuando intenta llamar a una operación en uno de los clientes.