前提:在做WPF应用程序的时候,有时候部分异常可引发程序的闪退,如果不在现场甚至很难发现Bug出现在哪里,甚至哪个页面都不能定位到。
未捕获的异常处理:
- C#在Application类中提供了DispatcherUnhandledException事件,用于处理UI线程上未捕获的异常
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
DispatcherUnhandledException += App_DispatcherUnhandledException;
base.OnStartup(e);
}
void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
//e.Exception 发生的异常
//e.Handled 是否已处理异常事件
DataLog.SaveLog("程序异常:" + e.Exception.Source + "@@" + e.Exception.Message);
}
}
具体可以参考:http://www.cnblogs.com/liuyueyu/p/4476151.html