调试的时候找到程序的崩溃点,想必大家很清楚了,可以在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); }
这样就可以轻松的把崩溃信息发送到指定的邮箱。
在这里再推荐一个工具友盟,友盟提供的服务很多,程序崩溃信息也可以通过它来记录,当然还有其他好多的统计功能,大家自己去看看吧。