2014-02-23 57 views
0

我得到了一個Windows Phone 8應用程序,我已經開發了2年,現在它的約15k行代碼。從今天開始,它在顯示主屏幕5秒後突然不斷崩潰。我已經從代碼的第一行開始對其進行調試,並一直貫穿到主屏幕運行代碼的位置。Windows Phone應用程序崩潰沒有例外

我沒有得到任何例外,我看不出它的外觀有什麼問題。還有什麼我可以做的,以找到哪裏/何時/爲什麼它崩潰?

編輯:仔細一看後,我發現這在我的輸出:

型「System.Net.WebException」的異常出現在System.Windows.ni.dll和之前沒有處理託管/本機邊界 在System.Windows.ni.dll中發生類型'System.Net.WebException'的異常,並且未在託管/本機邊界之前處理 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):加載'C:\ windows \ system32 \ en-US \ System.Xml.debug.resources.DLL'。模塊沒有符號。 System.Xml.ni.dll中發生類型'System.Xml.XmlException'的異常,並且未在託管/本機邊界之前處理 「TaskHost.exe」(CLR C:\ windows \ system32 \ coreclr.dll :Silverlight AppDomain):加載'C:\ Data \ Programs {6932AD96-A8AA-45F2-BC4E-81B7665641D8} \ Install \ microsoft.phone.controls.DLL'。找不到或打開PDB文件。 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):加載'C:\ windows \ system32 \ LocationService.Interop.ni.dll'。跳過的加載符號。模塊已經過優化,調試器選項「Just My Code」已啓用。 System.Windows.ni.dll中發生類型「System.OutOfMemoryException」的異常,並且未在託管/本機邊界之前處理 「TaskHost.exe」(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):加載'C:\ windows \ system32 \ en-US \ mscorlib.debug.resources.dll'。模塊沒有符號。 未知模塊中發生類型'System.Runtime.InteropServices.SEHException'的異常。並且在託管/本機邊界之前未處理 程序'[2540] TaskHost.exe'已退出,並且代碼爲0(0x0)。

但我不知道該怎麼做。

回答

0

您可以嘗試處理Application.UnhandledException事件。無論何時Windows Phone應用程序未處理異常,都會引發此事件。

可能會出現某些非常罕見的情況,儘管這種情況並未觸發,例如發生OutOfMemoryException。

在您的項目中,您應該有一個延伸Application的類。修改其構造函數訂閱此事件

public partial class App : Application 
{ 
    public App() 
    { 
     ... 
     this.UnhandledException += this.Application_UnhandledException; 
     InitializeComponent(); 
    } 

    private void Application_UnhandledException(object sender, 
     ApplicationUnhandledExceptionEventArgs e) 
    { 
     Debug.WriteLine(e.ExceptionObject); 
    } 
} 
+0

所以我只是把它放在我的代碼中的某個地方?它會自行觸發? – user2408952

+0

@ user2408952不完全。我已經更新了我的答案,展示瞭如何訂閱'UnhandledException'事件。 – dcastro

+0

@ user2408952對它有幫助嗎? – dcastro

相關問題