

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

# AWS Flow Framework 適用於 Java 的例外狀況
<a name="errorhandling.exceptions"></a>

 AWS Flow Framework 適用於 Java 的 使用下列例外狀況。本節說明例外狀況的概觀。如需詳細資訊，請參閱個別例外狀況 適用於 Java 的 AWS SDK 的文件。

**Topics**
+ [ActivityFailureException](#errorhandling.exceptions.ActivityFailureException)
+ [ActivityTaskException](#errorhandling.exceptions.ActivityTaskException)
+ [ActivityTaskFailedException](#errorhandling.exceptions.ActivityTaskFailedException)
+ [ActivityTaskTimedOutException](#errorhandling.exceptions.ActivityTaskTimedOutException)
+ [ChildWorkflowException](#errorhandling.exceptions.ChildWorkflowException)
+ [ChildWorkflowFailedException](#errorhandling.exceptions.ChildWorkflowFailedException)
+ [ChildWorkflowTerminatedException](#errorhandling.exceptions.ChildWorkflowTerminatedException)
+ [ChildWorkflowTimedOutException](#errorhandling.exceptions.ChildWorkflowTimedOutException)
+ [DataConverterException](#errorhandling.exceptions.DataConverterException)
+ [DecisionException](#errorhandling.exceptions.DecisionException)
+ [ScheduleActivityTaskFailedException](#errorhandling.exceptions.ScheduleActivityTaskFailedException)
+ [SignalExternalWorkflowException](#errorhandling.exceptions.SignalExternalWorkflowException)
+ [StartChildWorkflowFailedException](#errorhandling.exceptions.StartChildWorkflowFailedException)
+ [StartTimerFailedException](#errorhandling.exceptions.StartTimerFailedException)
+ [TimerException](#errorhandling.exceptions.TimerException)
+ [WorkflowException](#errorhandling.exceptions.WorkflowException)

## ActivityFailureException
<a name="errorhandling.exceptions.ActivityFailureException"></a>

框架會在內部使用此例外狀況，以溝通活動失敗。當活動因為未處理的例外狀況而失敗時，它會包裝在 中`ActivityFailureException`並回報給 Amazon SWF。只有在您使用活動工作者擴充點時，才需要處理此例外狀況。您的應用程式碼永遠不需要處理此例外狀況。

## ActivityTaskException
<a name="errorhandling.exceptions.ActivityTaskException"></a>

這是活動任務失敗例外狀況的基本類別：`ScheduleActivityTaskFailedException`、`ActivityTaskFailedException`、`ActivityTaskTimedoutException`。它包含失敗任務的任務 ID 和活動類型。您可以在工作流程實作中截獲此例外狀況，以使用通用方法來處理活動失敗。

## ActivityTaskFailedException
<a name="errorhandling.exceptions.ActivityTaskFailedException"></a>

拋出 `ActivityTaskFailedException`，以將活動中的未處理例外狀況回報給工作流程實作。可以從此例外狀況的 cause 屬性擷取原始例外狀況。例外狀況也會提供適用於進行偵錯的其他資訊，例如歷史記錄中的唯一活動識別符。

框架透過從活動工作者序列化原始例外狀況，可提供遠端例外狀況。

## ActivityTaskTimedOutException
<a name="errorhandling.exceptions.ActivityTaskTimedOutException"></a>

如果 Amazon SWF 已逾時活動，則會擲出此例外狀況。無法在所需期間內將活動任務指派給工作者，或工作者在所需時間內無法完成活動任務，則可能會發生此狀況。呼叫活動方法時，您可以使用 `@ActivityRegistrationOptions` 註釋或使用 `ActivitySchedulingOptions` 參數在活動上設定這些逾時。

## ChildWorkflowException
<a name="errorhandling.exceptions.ChildWorkflowException"></a>

用來報告子工作流程執行失敗之例外狀況的基本類別。例外狀況包含子工作流程執行的 ID 以及其工作流程類型。您可以截獲此例外狀況，以使用通用方法來處理子工作流程執行失敗。

## ChildWorkflowFailedException
<a name="errorhandling.exceptions.ChildWorkflowFailedException"></a>

拋出 `ChildWorkflowFailedException`，以將子工作流程中的未處理例外狀況回報給父工作流程實作。可以從此例外狀況的 `cause` 屬性擷取原始例外狀況。例外狀況也會提供適用於進行偵錯的其他資訊，例如子執行的唯一識別符。

## ChildWorkflowTerminatedException
<a name="errorhandling.exceptions.ChildWorkflowTerminatedException"></a>

父工作流程執行中會拋出此例外狀況，以報告子工作流程執行的終止。如果您想要處理子工作流程終止 (例如，執行清理或補償)，則您應會截獲此例外狀況。

## ChildWorkflowTimedOutException
<a name="errorhandling.exceptions.ChildWorkflowTimedOutException"></a>

此例外狀況會在父工作流程執行中擲出，以報告子工作流程執行已逾時，並由 Amazon SWF 關閉。如果您想要處理子工作流程的強制關閉 (例如，執行清理或補償)，則您應會截獲此例外狀況。

## DataConverterException
<a name="errorhandling.exceptions.DataConverterException"></a>

框架使用 `DataConverter` 元件來封送處理和取消封送處理透過線路傳送的資料。如果 `DataConverter` 無法封送處理和取消封送處理資料，則會拋出此例外狀況。這可能會因各種原因而發生，例如，用來封送處理和取消封送處理資料的 `DataConverter` 元件中有不相符項目。

## DecisionException
<a name="errorhandling.exceptions.DecisionException"></a>

這是例外狀況的基本類別，代表無法由 Amazon SWF 制定決策。您可以截獲此例外狀況，以使用一般方式來處理這類例外狀況。

## ScheduleActivityTaskFailedException
<a name="errorhandling.exceptions.ScheduleActivityTaskFailedException"></a>

如果 Amazon SWF 無法排程活動任務，則會擲出此例外狀況。這可能是由於各種原因而發生，例如，活動已棄用，或您的帳戶已達到 Amazon SWF 限制。例外狀況中的 `failureCause` 屬性指出無法排定活動的確切原因。

## SignalExternalWorkflowException
<a name="errorhandling.exceptions.SignalExternalWorkflowException"></a>

如果工作流程執行Amazon SWF無法處理請求以發出另一個工作流程執行訊號，則會擲出此例外狀況。如果找不到目標工作流程執行，也就是您指定的工作流程執行不存在或處於關閉狀態，就會發生這種情況。

## StartChildWorkflowFailedException
<a name="errorhandling.exceptions.StartChildWorkflowFailedException"></a>

如果 Amazon SWF 無法啟動子工作流程執行，則會擲出此例外狀況。這可能是由於各種原因而發生，例如，指定的子工作流程類型已棄用，或您的帳戶已達到 Amazon SWF 限制。例外狀況中的 `failureCause` 屬性指出無法啟動子工作流程執行的確切原因。

## StartTimerFailedException
<a name="errorhandling.exceptions.StartTimerFailedException"></a>

如果 Amazon SWF 無法啟動工作流程執行請求的計時器，則會擲出此例外狀況。如果指定的計時器 ID 已在使用中，或您的帳戶已達到 Amazon SWF 限制，則可能會發生這種情況。例外狀況中的 `failureCause` 屬性指出失敗的確切原因。

## TimerException
<a name="errorhandling.exceptions.TimerException"></a>

這是計時器相關例外狀況的基本類別。

## WorkflowException
<a name="errorhandling.exceptions.WorkflowException"></a>

框架會在內部使用此例外狀況，以報告工作流程執行中的失敗。只有在您使用工作流程工作者擴充點時，才需要處理此例外狀況。