原文地址:https://wpf.2000things.com/2010/08/30/49-unhandled-exceptions/
当一个在代码中没有处理的异常在WPF应用程序中抛出的时候,会导致一个未处理的异常并且程序强制退出。这会导致窗口出现下面类似的画面:
当它发生的时候,程序会立刻退出,用户根本没有机会保存未完成的工作,并且用户无法获得其它有用的信息。总之,程序崩溃。
我们可以通过处理Application.DispatcherUnhandledException 事件来解决这类异常。在下面的例子中,我们显示错误信息,并且设置Handled 属性,防止程序被关闭。
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
string friendlyMsg = string.Format("SO sorry that something went wrong. The error was: [{0}]", e.Exception.Message);
string caption = "Error";
MessageBox.Show(friendlyMsg, caption, MessageBoxButton.OK, MessageBoxImage.Error);
// Signal that we handled things--prevents Application from exiting
e.Handled = true;
}