截至 2024 年 7 月 31 日, AWS SDK for Java 1.x 已進入維護模式,並將end-of-support
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
例外狀況處理
了解 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 擲回 。