“嵌套异常处理程序”示例

Download sample

此示例描述如何设置和使用 Windows Workflow Foundation 异常处理程序。 异常提供了一种结构化的、统一的和类型安全的方式来处理工作流、活动和用户级别的错误情形。 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 查询语句创建名为 SqlPersistenceService 的新数据库:

    CREATE DATABASE SqlPersisenceService

    注意:在工作流应用程序中同时使用 SqlTrackingServiceSqlWorkflowPersistenceService 时,建议对持久性服务和跟踪服务使用单一数据库。

  2. 在 SQL 查询分析器工作区中,从可用数据库列表中选择在步骤 1 中创建的数据库。

  3. 在**“文件”菜单上,单击“打开”**,并打开 SQL 脚本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<语言>\SqlPersistenceService_Schema.sql

  4. 通过单击**“执行”**来执行查询,或按 F5 创建 SQL 持久性服务表。

  5. 在**“文件”菜单上,单击“打开”**,并打开 SQL 脚本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<语言>\SqlPersistenceService_Logic.sql

  6. 通过单击**“执行”**来执行查询,或按 F5 创建 SQL 持久性服务存储过程。

生成示例

  1. 通过单击本主题中的**“下载示例”**来下载该示例。

    这会将示例项目提取到本地硬盘。

  2. 单击**“开始”,依次指向“程序”“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。

  3. 转到示例的源目录。

  4. 在命令提示符处键入 MSBUILD <解决方案文件名>

运行示例

  • 在 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

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。