例外狀況處理 - AWS SDK for Java 1.x

截至 2024 年 7 月 31 日, AWS SDK for Java 1.x 已進入維護模式,並將end-of-support在 2025 年 12 月 31 日送達。我們建議您遷移至 AWS SDK for Java 2.x,以繼續接收新功能、可用性改進和安全性更新。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

例外狀況處理

了解 AWS SDK for Java 擲回例外狀況的方式和時間,對於使用 建置高品質應用程式非常重要SDK。下列各節說明 擲回的不同例外狀況,SDK以及如何妥善處理。

為什麼使用未檢查的例外狀況?

基於下列原因, AWS SDK for Java 使用執行期 (或未核取) 例外狀況,而非核取的例外狀況:

  • 為了讓開發人員能夠更精確的控制他們想處理的錯誤,而非強制他們處理不在乎的例外情況 (因而使得程式碼過於冗長)

  • 為了避免大型應用程式中已檢查例外狀況的固有擴展性問題

一般而言,已檢查例外狀況在小規模上可運作良好,但會隨著應用程式增長且更複雜而變得棘手。

如需使用已核取和未核取例外狀況的詳細資訊,請參閱:

AmazonServiceException (和子類別)

AmazonServiceException 是使用 時最常見的例外狀況 AWS SDK for Java。此例外狀況代表來自 的錯誤回應 AWS 服務。例如,如果您嘗試終止不存在的 Amazon EC2 執行個體, EC2 會傳回錯誤回應,而該錯誤回應的所有詳細資訊都會包含在AmazonServiceException擲出的 中。在某些情況下,會擲回 AmazonServiceException 的子類別以讓開發人員透過 catch 區塊更精確的控制錯誤情況處理。

當您遇到 時AmazonServiceException,您知道您的請求已成功傳送至 , AWS 服務 但無法成功處理。這可能是因為請求參數中的錯誤,或因為服務端的問題。

AmazonServiceException 為您提供資訊,例如:

  • 傳回HTTP的狀態碼

  • 傳回的 AWS 錯誤碼

  • 來自該服務的詳細錯誤訊息

  • AWS 失敗請求的請求 ID

AmazonServiceException 也包含有關失敗請求是呼叫者的錯誤 (具有非法值的請求) 還是 AWS 服務的錯誤 (內部服務錯誤) 的資訊。

AmazonClientException

AmazonClientException 表示在嘗試將請求傳送至 或嘗試從 AWS 剖析回應時,在 Java 用戶端程式碼內發生問題 AWS。AmazonClientException 通常比 更嚴重AmazonServiceException,並指出主要問題,導致用戶端無法對 AWS 服務進行服務呼叫。例如,AmazonClientException如果您嘗試呼叫其中一個用戶端上的 操作時沒有可用的網路連線, 會 AWS SDK for Java 擲回 。