异常处理 - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

我们宣布了即将推出 end-of-support 的 Amazon SDK for Java (v1)。建议您迁移到 Amazon SDK for Java v2。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

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

异常处理

了解 Amazon SDK for Java 抛出异常的方式和时间对于使用 SDK 构建高质量的应用程序非常重要。接下来几节介绍开发工具包引发异常的几种不同情况,以及如何正确地处理这些异常。

为什么使用未选中的异常?

出于以下原因, Amazon SDK for Java 使用运行时(或未选中)异常而不是已检查的异常:

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

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

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

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

AmazonServiceException (和子类)

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

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

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

  • 返回的 HTTP 状态代码

  • 返回的 Amazon 错误码

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

  • Amazon 失败请求的请求 ID

AmazonServiceException还包括有关失败的请求是调用者的错误(具有非法值的请求)还是调用 Amazon Web Service者的错误(内部服务错误)的信息。

AmazonClientException

AmazonClientException表示 Java 客户端代码内部出现问题,无论是在尝试向发送请求时 Amazon 还是尝试解析来自 Amazon的响应时。AmazonClientException通常比 a 更严重AmazonServiceException,表示存在导致客户端无法向 Amazon 服务发出服务调用的主要问题。例如,当您尝试在其中一个客户端上调用操作时,AmazonClientException如果没有可用的网络连接,则会 Amazon SDK for Java 抛出。