Tratamento de exceções - AWS SDK para Java 1.x

O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte está previsto para 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

Tratamento de exceções

Compreender como e quando o AWS SDK para Java lança exceções é importante para compilar 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?

O AWS SDK para Java usa exceções de tempo de execução (ou desmarcadas), em vez de exceções marcadas por estes 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.

Para obter mais informações sobre o uso de exceções marcadas e desmarcadas, consulte:

AmazonServiceException (e subclasses)

AmazonServiceException é a exceção mais comum que você receberá ao usar o AWS SDK para Java. Essa exceção representa uma resposta de erro de um AWS service (Serviço da AWS). Por exemplo, se você tentar encerrar uma instância do Amazon EC2 que não existe, o EC2 retornará uma resposta de erro, e todos os detalhes dessa resposta de erro serão incluídos no AmazonServiceException lançado. Para alguns casos, uma subclasse de AmazonServiceException é lançada para permitir que os desenvolvedores controlem casos de erro por meio de blocos catch.

Ao encontrar um AmazonServiceException, você sabe que a requisição foi enviada com êxito para o AWS service (Serviço da AWS), mas não foi possível processá-la com êxito. Isso pode ocorrer devido a erros nos parâmetros da solicitação ou problemas no lado do serviço.

AmazonServiceException fornece informações como:

  • Código de status HTTP retornado

  • Código de erro da AWS retornado

  • Mensagem de erro detalhada do serviço

  • ID de requisição da AWS para a requisição com falha

AmazonServiceException também inclui informações sobre se a falha na solicitação foi devido a falha do chamador (uma solicitação com valores ilegais) ou do AWS service (Serviço da AWS) (um erro de serviço interno).

AmazonClientException

AmazonClientException indica que um problema ocorreu dentro do código cliente do Java, enquanto tenta enviar uma requisição para a AWS ou durante a tentativa de analisar uma resposta da AWS. Um AmazonClientException normalmente é mais grave do que um AmazonServiceException e indica um problema grave que esteja evitando que o cliente faça chamadas de serviço para serviços da AWS. Por exemplo, o AWS SDK para Java lançará um AmazonClientException se nenhuma conexão de rede estiver disponível quando você tentar chamar uma operação em um dos clientes.