/// <summary> /// Called when exception happens in a GUI routine /// </summary> private void OnGuiUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { bool userLevel; string message = ExceptionMessage.GetUserMessage(e.Exception, out userLevel); if (userLevel) { // TODO FIX NOW would really like to find the window with focus, and not always use the main window... MainWindow.Focus(); MainWindow.StatusBar.LogError(message); e.Handled = true; } else { var feedbackSent = AppLog.SendFeedback("Unhandled Exception in GUI\r\n" + e.Exception.ToString(), true); var dialog = new PerfView.Dialogs.UnhandledExceptionDialog(e.Exception, feedbackSent); var ret = dialog.ShowDialog(); // If it returns, it means that the user has opted to continue. e.Handled = true; } }