异常处理 - AWS SDK for Java

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

异常处理

要使用开发工具包构建高质量的应用程序,必须了解 AWS SDK for Java 在什么情况下会引发异常以及它以什么方式引发异常。接下来几节介绍开发工具包引发异常的几种不同情况,以及如何正确地处理这些异常。

为什么使用取消选中的异常?

出于以下原因,AWS SDK for Java 使用运行时 (或取消选中的) 异常而不是选中的异常:

  • 使开发人员能够精细控制要处理哪些错误,而不是必须处理无关紧要的异常情况(这会导致代码极其冗长)

  • 避免大型应用程序因使用选中的异常而固有的可扩展性问题

一般来说,小型应用程序使用选中的异常是可以的,但随着应用程序的大小和复杂程度增加,这样做就会出现问题。

有关使用选中和取消选中的异常的更多信息,请参阅:

AmazonServiceException (和子类)

AmazonServiceException是在使用时最常遇到的异常AWS SDK for Java. 该异常是指来自的错误响应AWS 服务. 例如,如果您尝试终止不存在的 Amazon EC2 实例,EC2 会返回错误响应,而且引发的 AmazonServiceException 中会包含该错误响应的所有详细信息。在某些情况下,会引发 AmazonServiceException 的一个子类,使开发人员能够通过捕获模块精细控制如何处理错误情况。

当你遇到AmazonServiceException,您就会知道,您的请求已成功发送到AWS 服务但无法成功处理。这可能是因为请求的参数中存在错误,或者是因为服务端的问题。

AmazonServiceException 为您提供很多信息,例如:

  • 返回的 HTTP 状态代码

  • RETURAWS错误代码

  • 来自服务的详细错误消息

  • AWS已失败请求的请求 ID

AmazonServiceException中还包括相关信息,指出请求失败原因是调用方的错误(请求的值非法),还是AWS 服务的错误(内部服务错误)。

AmazonClientException

AmazonClientException指示在尝试将请求发送到 Java 客户端代码内出现问题AWS或者在尝试解析来自的响应时AWS. 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的AmazonClientException通常比更严重AmazonServiceException,并指出存在严重问题,导致客户端无法拨打服务电话AWS服务。例如,如果您在尝试对一个客户端执行操作时网络连接不可用,AWS SDK for Java会引发 AmazonClientException