View a markdown version of this page

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

Amazon SDK for Java 1.x于2025年12月31日达到支撑终止状态。我们建议您迁移到 Amazon SDK for Java 2.x 以继续获得新功能、可用性改进和安全更新。

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

异常处理

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

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

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

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

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

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

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

AmazonServiceException (和子类)

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

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

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

  • 返回的 HTTP 状态代码

  • 返回的 Amazon 错误码

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

  • Amazon 失败请求的请求 ID

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

AmazonClientException

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