·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > .Net开发 > C#
WF学习系列之六:工作流和宿主程序通讯异常引发的思考
http://www.21tx.com 2008年12月20日 博客园 mjgforever

1 2 3 下一页

  1问题描述

  工作流和宿主程序通讯的时候,经常碰到一下异常:

  {"无法为实例 ID“c083a3ea-96e5-4bd2-bb9c-da2049244e08”传递接口类型“Mjgforever.Workflow.LocalServices.IOrderManagement”上的事件“OrderShipped”。"}

  出现这种情况的时候,我们经常查阅msdn或去网上搜索,出现各种各样的答案,然后去试各种解决方案,这种方式很浪费时间。为什么呢?这是因为没有找到本质原因。

  2 问题剖析

  在书写程序的时候,我们经常这样捕获异常:

      try
      {
        if (eh != null)
        {
          OrderEventArgs e = new OrderEventArgs(workflowId, orderInfo);
          e.WaitForIdle = true; //设置是立即引发事件还是工作流在引发前处于空闲状态
          eh(this, e);
        }
      }
      catch (Exception ex)
      {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(">>> RaiseEvent Error: " + ex.Message + " <<<");
        eventResult = false;
    }

  这样写有什么问题吗?一个致命的问题是可能不能捕获真正的异常!在这一点上,还是喜欢Eclipse开发环境,它会提示我们要处理哪些异常,不知道微软什么时候推出这种功能。另外,大家有什么好办法可以可能的异常,最好带提示性质的,毕竟每个类或函数引发的异常都去查的话,很费时,最后的解决方案就用Exception全代替了。在这点上,希望哪位高手指点一下。

上一篇: 一个简单的多线程即时通讯程序(类似QQ,MSN)
下一篇: C#中的abstract与virtual

1 2 3 下一页

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net