在我的 Windows Phone 应用程序中,我Application.UnhandledException
用来捕获所有未处理的错误。如果发生这种错误,那么我的应用程序会显示一个简单MessageBox
的请求,要求通过电子邮件向开发人员发送错误报告。它看起来像这样:
protected virtual void OnUnhandledException(
object sender, ApplicationUnhandledExceptionEventArgs e)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
var result = MessageBox.Show(
"Would you like to send a report to developers?",
"Error",
MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
var task = new EmailComposeTask();
task.To = "feedback@site.com";
task.Subject = "Error";
task.Body =
e.ExceptionObject + "\n" + e.ExceptionObject.StackTrace;
task.Show();
e.Handled = true;
}
});
}
在大多数情况下,一切正常。
但许多用户抱怨说,有时应用程序只是崩溃而没有消息。我的开发人员仪表板中有一些崩溃报告,但这些报告中的有用信息非常少。而且我不明白什么样的错误会导致这种情况。我只假设在一个后台线程中发生了一些错误。
Application.UnhandledException
在所有情况下都能正常工作吗?一些异常是否可以不处理?在上述情况下可以做什么?
谢谢。