|
调试的时候找到程序的崩溃点,想必大家很清楚了,可以在App.cs中的RootFrame_NavigationFailed和Application_UnhandledException方法中捕捉到程序导航出错和崩溃信息,这时直接输出到Debug控制台就可以看到了。
但是程序的Bug往往不是开发人员测试出来的,当测试人员测出崩溃信息时,有时我们仅通过测试人员的描述很难定位到崩溃点,而现在支持Windows Phone 7的日志又无法记录崩溃时的堆栈信息。这时就要能出个能让测试人员提交崩溃信息的功能。这里我选择了用Email提交。
在App.cs文件中加入这两个方法
private void ShowExceptionError(string title,string msg)
{
ExceptionErrorUpload(title, msg);
//这里要调用MessageBox才能保证调用邮箱服务成功
System.Windows.MessageBox.Show(msg, title, MessageBoxButton.OK);
}
private static void ExceptionErrorUpload(string title,string msg)
{
EmailComposeTask task = new EmailComposeTask();
//这个是要发送到的邮箱
task.To = "xxxxx@xxx.com";
//邮件标题
task.Subject = title;
task.Body = msg;
task.Show();
}
然后直接在RootFrame_NavigationFailed和Application_UnhandledException方法中调用就可以了。
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
ShowExceptionError(e.ExceptionObject.Message, e.ExceptionObject.StackTrace);
}
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
ShowExceptionError(e.Exception.Message, e.Exception.StackTrace);
}
这样就可以轻松的把崩溃信息发送到指定的邮箱。
在这里再推荐一个工具友盟,友盟提供的服务很多,程序崩溃信息也可以通过它来记录,当然还有其他好多的统计功能,大家自己去看看吧。
|
|