2012-08-09 45 views
0

我們沒有任何測試團隊支持我們的產品開發。 等等。 我們需要攔截並處理所有異常以提高用戶體驗。 在windows phone應用程序中是否有任何解決方案?如何攔截並處理Windows phone應用程序的所有異常?

as app.xaml.cs文件中的Fllow。我們發現:

 // Code to execute on Unhandled Exceptions 
    private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
    { 
     if (e.ExceptionObject is QuitException) 
      return; 

     if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // An unhandled exception has occurred; break into the debugger 
       System.Diagnostics.Debugger.Break(); 
      } 


     if (System.Diagnostics.Debugger.IsAttached) 
     { 
      // An unhandled exception has occurred; break into the debugger 
      System.Diagnostics.Debugger.Break(); 
     } 
    } 

回答

1

是的,這應該會捕獲您在應用中遺漏的所有異常。考慮到你顯然沒有在其他地方捕捉到許多異常,並且正在尋找一個簡單的解決方案,這個事件處理程序可能會起作用,但我嚴肅地不推薦它。

此事件處理程序捕獲異常,然後應該崩潰/退出您的應用程序。如果你只在這裏處理你的例外,這將導致巨大的死亡人數。有時發生異常,但應用程序可以繼續正常工作。這就是爲什麼我建議你在代碼中處理它們,而不是在這裏。通過這種方式,您可以完全控制應用程序的繼續以及是否繼續,並減少「未處理的異常」和應用程序崩潰的次數。

+0

我們一直在處理它們,而不是我們的代碼。以防萬一。我們需要獲取所有的異常信息。所以我們必須確保攔截所有這些。它會在你的建議中崩潰。 – 2012-08-09 07:33:19

+0

如果您需要收集有關未處理的異常的信息,請使用您提到的事件(您甚至可以使用稱爲Little Watson的事件將意外發生的異常發送給自己http://blogs.msdn.com/b/andypennell/archive /2010/11/01/error-reporting-on-windows-phone-7.aspx – 2012-08-09 07:39:21

+0

謝謝。我們想攔截所有異常信息並使用EmailTask​​發送到服務器。 – 2012-08-09 07:42:59

0

將您的代碼放在Try-Catch塊中。我也遇到了這樣的問題,但後來由異常處理方法處理。

try 
    { 
    // your code 
    } 

catch (Exception ex) 
    { 

    throw (ex); 
    } 
+0

讓我們變得容易,我只是想用一些代碼來捕獲所有異常運行應用程序。即使使用可以使用它,它也不會意外崩潰。 – 2013-10-22 08:34:13

相關問題