《WF编程》系列之30 - 基本活动:错误处理
2007-08-09 22:59 Windie Chai 阅读(2975) 评论(2) 编辑 收藏 举报
4.3 错误处理
Fault,故障,现在官方已经将其翻译为错误,那么以后的随笔中我也就采用官方的翻译吧.
错误处理也属于流程控制的一部分,这一节我来介绍一下有关错误处理的活动.错误是指在工作流执行期间发生的异常.我们可以使用错误处理程序来捕捉这些异常并尝试做一些”修复”工作.我们可以补偿提交的事务,或者发送Email来警告管理员并等待丢失的数据被修复.
我们最好在工作流中对可能发生的错误进行处理,如果工作流抛出了一个异常,而我们又不知道如何去处理,那么只能等Runtime终止工作流.
4.3.1 FaultHandlersActivity
FaultHandlersActivity并不是列在工具箱中等我们使用的活动.在工作流的错误处理程序视图(fault handlers view)中,默认只有一个空白的复合活动,这就是FaultHandlersActivity.而且不只是工作流, 许多复合活动(如While,Listen,Sequence和TransactionScope…)都可以通过错误处理程序视图来可以处理子活动中的错误.
在工作流或活动的右键菜单中选择查看错误(View Faults),或者点击设计器底部的第三个按钮就可以转到错误处理程序视图.我们可以在这个视图中使用FaultHandler活动.
4.3.2 FaultHandlerActivity
FaultHandler活动很好理解,因为它和C#和VB中的catch语句非常相像. FaultHandler可以捕捉异常并执行一些操作.在错误处理程序视图中,我们可以从工具箱里拖放多个FaultHandler活动到设计器图板中,每个FaultHandler都可以包含自己的子活动.我们可以添加多个FaultHandler来处理不同类型的错误(类似catch语句).
FaultHandler活动有一个FaultType属性,用来表示需要捕捉的异常类型.如果将FaultHandler设置为System.Exception,我们就可以捕捉所有的CLS-compliant异常.处理程序会捕捉所有FaultType类型的异常,或所有继承自FaultType的异常.而FaultHandler活动的另外一个属性-Fault属性则可以将异常绑定到工作流的域或者属性中.
Runtime会从左到右依序查找FaultHandler,如果第一个FaultHandler的FaultType是System.Exception,则此FaultHandler就会捕捉所有的异常,这样做的结果就是Runtime不再需要其它的FaultHandler了(也类似catch语句). |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构