WF学习笔记(四)
2024-10-13 22:32:38
1、使用WorkflowApplication.OnUnhandledException 处理Code异常 ,用于产生异常的Activity:
public class ExceptionActivity:CodeActivity { protected override void Execute(CodeActivityContext context) { ; / a; } }
-无UnhandledExceptionAction方式
static void ExceptionActivityWorkflow_None() { WorkflowApplication instance = new WorkflowApplication(new ExceptionActivityWorkflow()); instance.Completed = workflowCompleted; instance.Aborted = aborted; instance.Run(); } private static void aborted(WorkflowApplicationAbortedEventArgs obj) { Console.WriteLine("aborted,实例编号:{1},Reason:{0}", obj.Reason.Message, obj.InstanceId); } static void workflowCompleted(WorkflowApplicationCompletedEventArgs e) { Console.WriteLine("完成,实例编号:{0},状态:{1}", e.InstanceId, e.CompletionState.ToString()); }
不用[OnUnhandledException]方法处理异常时,流程正常结束.调用实例的[completed],状态为[faulted]
-处理Code异常,[UnhandledExceptionAction.Abort]方式
static void ExceptionActivityWorkflow_Abort() { WorkflowApplication instance = new WorkflowApplication(new ExceptionActivityWorkflow()); instance.Completed =workflowCompleted; instance.OnUnhandledException = unhandledException_Abort; instance.Aborted = aborted; instance.Run(); } static UnhandledExceptionAction unhandledException_Abort(WorkflowApplicationUnhandledExceptionEventArgs e) { System.Console.WriteLine("unhandledException_Abort:{0}", e.UnhandledException.Message); return UnhandledExceptionAction.Abort; } private static void aborted(WorkflowApplicationAbortedEventArgs obj) { Console.WriteLine("aborted,实例编号:{1},Reason:{0}", obj.Reason.Message, obj.InstanceId); } static void workflowCompleted(WorkflowApplicationCompletedEventArgs e) { Console.WriteLine("完成,实例编号:{0},状态:{1}", e.InstanceId, e.CompletionState.ToString()); }
用[UnhandledExceptionAction.Abort]方式处理异常时,流程被结束.不会调用实例的[completed],会调用实例的[Aborted]
-UnhandledExceptionAction.Terminate
static void exceptionActivityWorkflow_Terminate() { WorkflowApplication instance = new WorkflowApplication(new ExceptionActivityWorkflow()); instance.Completed = workflowCompleted; instance.OnUnhandledException = unhandledException_Terminate; instance.Aborted = aborted; instance.Run(); } static UnhandledExceptionAction unhandledException_Terminate(WorkflowApplicationUnhandledExceptionEventArgs e) { System.Console.WriteLine("unhandledException_Abort:{0}", e.UnhandledException.Message); return UnhandledExceptionAction.Terminate; }
用[UnhandledExceptionAction.Terminate]方式处理异常时,流程正常结束.会调用实例的[completed],但状态为[faulted]
最新文章
- Struts2中跳转问题
- 微信公众平台开发——微信授权登录(OAuth2.0)
- excel读取指定行
- 二十、Android -- SDcard文件读取和保存
- Tomcat - DBCP 配置
- -_-#toFixed
- NSDate与时间戳的那点事
- String构造函数originalValue.length&;gt;size 它发生
- 《STL源代码分析》---stl_list.h读书笔记
- java array to list
- java将map拼接成“参数=值&;参数=值”
- Spring Boot 2.x(六):优雅的统一返回值
- springboot使用内部tomcat启动和外部tomcat启动的区别
- animate.css动画
- hadoop fs 命令使用
- iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
- BZOJ 1925 地精部落(DP)
- Codechef MARCH14 GERALD07加强版
- openstack如何设置cpu和内存的超配比例
- 用Linux完成Oracle自动物理备份