巢狀例外狀況處理常式範例

Download sample

這個範例會說明如何設定及使用 Windows Workflow Foundation 例外狀況處理常式。例外狀況會提供結構化、統一和型別安全 (Type-Safe) 的方式來處理工作流程、範圍及使用者層級的錯誤條件。Windows Workflow Foundation 中的例外狀況機制相似於 C# 的例外狀況機制。它可讓開發人員擲回例外狀況、依類型攔截例外狀況,並將例外狀況指派給變數。

工作流程或啟用例外狀況處理常式行為的活動,可以與多個例外狀況處理常式建立關聯。這讓開發人員能夠根據例外狀況類型來撰寫不同的處理常式程式碼。相似於 C#,當例外狀況擲回時,便會叫用呼叫堆疊中符合例外狀況類型的第一個例外狀況處理常式。例如,如果擲回例外狀況 orderException,而此時沒有該類型的例外狀況處理,此例外狀況便會針對包含活動中的任何例外狀況處理常式進行評估,並依此類推,直到達到工作流程層級為止。在工作流程例外狀況處理常式執行後,或是該工作流程層級未提供任何處理常式時,工作流程便會終止。

在此範例中,工作流程包含 FaultHandlersActivity 活動。這是支援例外狀況處理的複合活動。SynchronizationScopeActivity 活動包含單一的 CodeActivity 活動。CodeActivity 活動的程式碼處理常式會擲回 System.ExceptionFaultHandlersActivity 活動具有 System.Exception 例外狀況的例外狀況處理常式,而此處理常式將被呼叫來處理這個例外狀況。

使用範例

若要使用此範例,您必須建立 SQL 持續性資料庫。

建立 SQL 持續性資料庫

  1. 如果您使用 Microsoft SQL Server 2005 Express、SQL Server 2000 (含) 以後版本或 SQL Server 2000 Desktop Engine (MSDE),請使用 SQL 查詢陳述式 (Statement) 建立名為 SqlPersistenceService 的新資料庫:

    CREATE DATABASE SqlPersisenceService

    注意:在工作流程應用程式中同時使用 SqlTrackingServiceSqlWorkflowPersistenceService 時,建議您使用單一資料庫,以保持持續性並方便進行追蹤。

  2. 在 SQL Query Analyzer 工作區中,於可用資料庫的清單中選取您在步驟 1 建立的資料庫。

  3. 在 [檔案] 功能表上,按一下 [開啟],並開啟 SQL 指令碼 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<language>\SqlPersistenceService_Schema.sql

  4. 按一下 [執行] 或按下 F5 執行查詢,以建立 SQL 持續性服務資料表。

  5. 在 [檔案] 功能表上,按一下 [開啟],並開啟 SQL 指令碼 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<language>\SqlPersistenceService_Logic.sql

  6. 按一下 [執行] 或按下 F5 執行查詢,以建立 SQL 持續性服務預存程序。

建置範例

  1. 按一下此主題中的 [下載範例] 來下載範例。

    這樣便會將範例專案擷取到本機硬碟上。

  2. 按一下 [開始],並依序指向 [程式集] 和 [Microsoft Windows SDK],再按一下 [CMD 殼層]。

  3. 移至範例的來源目錄。

  4. 在命令提示字元上,輸入 MSBUILD <Solution file name>

執行範例

  • 在 [SDK 命令提示字元] 視窗中,執行 OutlookWorkflowWizard\bin\debug 資料夾 (若是範例的 VB 版本,則是 OutlookWorkflowWizard\bin 資料夾) 中的 .exe 檔案,該資料夾位於此範例的主要資料夾下方。

請參閱

參考

FaultHandlersActivity
SynchronizationScopeActivity
CodeActivity

其他資源

Windows Workflow Foundation Activities
擲回範例
Fault Handling in Workflows
Using the FaultHandlersActivity Activity
活動範例
Windows Workflow Foundation 範例

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.