2013-11-25 51 views
1

我使用我的Windows 8應用功能下面的代碼捕獲錯誤並顯示一個消息對話框消息對話框沒有catch子句顯示

catch (Exception ex) 
      { 
       MessageDialog err = new MessageDialog("Error"); 
       await err.ShowAsync(); 


      } 

但我得到一個錯誤「不能在體內等待一個catch語句「。

但是,當我刪除await,它的工作原理,但我得到的代碼警告「因爲這個調用沒有等待,在調用完成之前繼續執行當前的方法考慮應用await運算符的結果呼叫「。

我需要在這個catch子句中顯示一條消息,我該如何解決這個問題?

+0

http://stackoverflow.com/questions/8868123/await-in-catch-block此鏈接可能有幫助。 – HappyLee

+0

請不要多次發表相同的問題。你不應該這樣做的最大原因是存在一個風險,那就是你的問題會以彼此重複的方式結束。 – ZombieSheep

+0

另外,供參考 - 請閱讀「我無法使用」的部分等待「?來自http://blogs.msdn.com/b/pfxteam/archive/2012/04/12/10293335.aspx#14 – HappyLee

回答

1

而不是在catch工作,只需將異常設置爲本地變量。如果它非空,那麼你知道你需要在catch塊結束後處理它。

public static async Task Foo() 
{ 
    Exception e = null; 
    try 
    { 
     //just something to throw an exception 
     int a = 0; 
     int n = 1/a; 
    } 
    catch (Exception ex) 
    { 
     e = ex; 
    } 
    if (e != null) 
     await ShowDialog(); 
}