/// <summary> /// Raise Exception Dialog box for both UI and non-UI Unhandled Exceptions /// </summary> /// <param name="e">Catched exception</param> private void ShowUnhandledExceptionDlg(Exception e) { Exception unhandledException = e; if (unhandledException == null) { unhandledException = new Exception("Unknown unhandled exception has occurred!"); } CustomExceptionDialog exDlgForm = new CustomExceptionDialog(); try { exDlgForm.checkBoxRestart.Checked = this.RestartApp; // Attach reflection to checkbox checked status exDlgForm.checkBoxRestart.CheckedChanged += delegate(object o, EventArgs ev) { this._dorestart = exDlgForm.checkBoxRestart.Checked; }; // Handle clicks on report link label exDlgForm.linkLabelData.LinkClicked += delegate(object o, LinkLabelLinkClickedEventArgs ev) { if (OnSendExceptionClick != null) { SendExceptionClickEventArgs ar = new SendExceptionClickEventArgs(true, unhandledException, _dorestart); OnSendExceptionClick(this, ar); } }; // Show the Dialog box: bool sendDetails = (exDlgForm.ShowDialog() == System.Windows.Forms.DialogResult.Yes); if (OnSendExceptionClick != null) { SendExceptionClickEventArgs ar = new SendExceptionClickEventArgs(sendDetails, unhandledException, _dorestart); OnSendExceptionClick(this, ar); } } finally { exDlgForm.Dispose(); Environment.Exit(1); // harakiri to prevent any WER dialogs } }
/// <summary> /// Raise Exception Dialog box for both UI and non-UI Unhandled Exceptions /// </summary> /// <param name="e">Catched exception</param> private void ShowUnhandledExceptionDlg(Exception e) { Exception unhandledException = e; if (unhandledException == null) unhandledException = new Exception("Unknown unhandled exception has occurred!"); CustomExceptionDialog exDlgForm = new CustomExceptionDialog(); try { exDlgForm.checkBoxRestart.Checked = this.RestartApp; // Attach reflection to checkbox checked status exDlgForm.checkBoxRestart.CheckedChanged += delegate(object o, EventArgs ev) { this._dorestart = exDlgForm.checkBoxRestart.Checked; }; // Handle clicks on report link label exDlgForm.linkLabelData.LinkClicked += delegate(object o, LinkLabelLinkClickedEventArgs ev) { if (OnSendExceptionClick != null) { SendExceptionClickEventArgs ar = new SendExceptionClickEventArgs(true, unhandledException, _dorestart); OnSendExceptionClick(this, ar); } }; // Show the Dialog box: bool sendDetails = (exDlgForm.ShowDialog() == System.Windows.Forms.DialogResult.Yes); if (OnSendExceptionClick != null) { SendExceptionClickEventArgs ar = new SendExceptionClickEventArgs(sendDetails, unhandledException, _dorestart); OnSendExceptionClick(this, ar); } } finally { exDlgForm.Dispose(); Environment.Exit(1); // harakiri to prevent any WER dialogs } }