Windows Phone App崩溃,没有例外

时间:2014-02-23 16:27:10

标签: c# windows-phone-8 windows-phone

我有一个Windows Phone 8应用程序,我已经开发了2年多,现在大约有15k行代码。从今天开始,它在显示主屏幕5秒后突然崩溃。我已经从第一行代码调试它,一直到主屏幕运行代码的地方。

我没有例外,我看不出它的外观有什么不对。我还能做些什么来确定崩溃的地点/时间/原因?

编辑:仔细观察后,我在输出中找到了这个:

  

System.Windows.ni.dll中出现“System.Net.WebException”类型的异常,并且在托管/本机边界之前未处理   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)。

但我不知道该怎么做。

1 个答案:

答案 0 :(得分: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);
    }
}