当前位置: 首页 > news >正文

贵州网站制作设计公司公司组网

贵州网站制作设计公司,公司组网,网页设计策划书方案,网站建设公司客户开发手册备注#xff1a;这篇文章的使用环境是.NET framework 4.0 RC 1 在WF4中创建native活动时#xff0c;NativeActivity是非常强大的。其众多的功能之一是围绕错误处理。 调度子活动的时的基本错误处理。 当NativeActivity执行的时候#xff0c;它是通过一个NativeActivityConte… 备注这篇文章的使用环境是.NET framework 4.0 RC 1 在WF4中创建native活动时NativeActivity是非常强大的。其众多的功能之一是围绕错误处理。 调度子活动的时的基本错误处理。     当NativeActivity执行的时候它是通过一个NativeActivityContext实例这个实例通过使用ScheduleActivity()函数来调度其他活动。ScheduleActivity()函数有几个重载其中一个使用了FaultCallback。当执行被调度的子活动发生一些异常时就会调用FaultCallback。调用错误处理函数需要一组参数这些参数包括NativeActivityFaultContext和未处理的异常。该NativeActivityFaultContext包含一个用于错误处理的HandleFault()函数。考虑到工作流的异步特性最直接的一个try / catch块是行不通。     因此我希望下面活动能捕获任何异常然后继续。  1     public sealed class MyActivity : NativeActivity  2     { 3         public Activity Body { get; set; }  4         protected override void Execute(NativeActivityContext context) 5         {  6             context.ScheduleActivity(Body, FaultHandler); 7         }  8         private void FaultHandler(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom) 9         {10             Console.WriteLine(propagatedException.Message);11             faultContext.HandleFault(); 12         }13     } 不要使用此代码它有一个严重的错误 让我们通过执行下面的工作流测试一下这段代码  1         private static Activity CreateWorkflow()  2         {  3             return new Sequence  4             {  5                 Activities  6                 {  7                     new WriteLine { Text  Start outer sequence. }, 8                     new MyActivity  9                     { 10                         Body  new Sequence11                         { 12                             Activities  13                             { 14                                new WriteLine { Text  Start inner sequence. },15                                new Throw 16                                {17                                    Exception  new InArgumentException(ctx  new DivideByZeroException())18                                },19                                new WriteLine { Text  End inner sequence. } 20                             }21                         }22                     }, 23                      new WriteLine { Text  End outer sequence. }24                 } 25             }; 26         } 对于这个工作流我期待下面这样的输出 但实际情况是别的东西我会收到以下输出   即使异常被上级捕获我们可以看到第二个内部的WriteLine仍然执行了 这种现象让我们想起了臭名昭著VB6 On Error Resume Next 当某语句出现错误时,跳过它,执行下面一行的代码。 这并不是我真正期待和希望的。修复很容易。所需要做的是使用CancelChild()函数明确取消正在执行的子活动。下面是NativeActivity的正确版本。  1    public sealed class MyActivity : NativeActivity  2     { 3         public Activity Body { get; set; }  4         protected override void Execute(NativeActivityContext context) 5         {  6             context.ScheduleActivity(Body, FaultHandler); 7         }  8         private void FaultHandler(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom) 9         {10             Console.WriteLine(propagatedException.Message);11             faultContext.HandleFault();12             faultContext.CancelChild(propagatedFrom);13         }14     } 本文转自麒麟博客园博客原文链接http://www.cnblogs.com/zhuqil/archive/2010/03/11/error-handling-in-a-nativeactivity.html如需转载请自行联系原作者
http://www.zqtcl.cn/news/486812/

相关文章:

  • 自学装修设计从哪里入手沈阳百度seo
  • 做jsp网站用哪些软件下载如何利用网站赚钱
  • 注册网站域名需要什么湘潭公司做网站
  • 一个网站如何优化企业资质查询平台
  • 模板网站为什么做不了优化山西网络网站建设销售公司
  • 建设什么网站可以赚钱设计本网站是用什么做的
  • 荆州市网站建设策划师
  • 苏州中国建设银行招聘信息网站中国企业登记网
  • 网站服务器的重要性新闻软文范例大全
  • 茶叶网站建设一般的风格加大志愿服务网站建设
  • 湖州医院网站建设方案网页游戏知乎
  • 以网站建设为开题报告临海门户网站住房和城乡建设规划局
  • 河南省大型项目建设办公室网站wordpress置顶功能
  • 奉化网站建设三合一网站建设多少钱
  • wordpress文章页怎么调用网站图片wordpress菜单锚点定位
  • 网站建设运营合作合同网站建设英文合同
  • wordpress chrome插件开发图片式网站利于做优化吗
  • 如何做好品牌网站建设策划app要有网站做基础
  • 横沥网站建设公司wordpress运行php
  • 南皮网站建设价格网络推广这个工作好做吗
  • 长安大学门户网站是谁给做的网站排名logo怎么做
  • 襄樊做网站做网站做网站
  • 百度做网站续费费用网站开发的可行性
  • 电子商务网站建设效益分析如何才能做好品牌网站建设策划
  • 能打开各种网站的浏览器app文章目录wordpress
  • 网站注册页面html中国建设招标网网站
  • 云南网站设计海外直购网站建设方案书范文
  • 网站视频小程序商城多少钱
  • 美耐皿 技术支持 东莞网站建设如何将网站指向404
  • 如何做网站的维护和推广wordpress首页在哪里修改