2010-04-09 101 views
2
  • 我的主应用程序创建了一个新的BackgroundWorker X X的DoWork事件处理程序调用了我的控制器的方法Y.此方法使用AsyncCallback创建WebRequest(异步)实例和回调。
  • 当响应到达时,回调方法Z被调用,内容将被分析。可能发生响应有不需要的内容。此时回调Z会抛出异常。

我想在我的主应用程序中发现这个异常。 我在DoWork和RunWorkerCompleted中试过它,但没有任何东西可以从那里被捕获。从调用异步的BackgroundWorker抛出异常。方法(Webrequest)

RunWorkerCompletedEventArgs中的错误始终为空。

+0

那么如何解决预防吗? – 2011-06-12 20:35:46

回答

2

不知道你在做什么错。但是,这就像魅力。

 BackgroundWorker bw = new BackgroundWorker(); 
     bw.DoWork += (o, s) => { throw new Exception("myMessage"); }; 
     bw.RunWorkerCompleted += (o, s) => { Console.WriteLine(s.Error.Message); }; 
     bw.RunWorkerAsync(); 
     Console.ReadKey(true); 

因此,这意味着地方您的异常必须被逮住,并由此传播到BWWorkCompletedEventArgs

+0

我的异常是从异步调用的方法(事件处理程序)中抛出的。也许这是原因?!?!? – mrbamboo 2010-04-10 20:01:24