2010-04-09 98 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