/// <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 was occurred!"); UnhandledExDlgForm exDlgForm = new UnhandledExDlgForm(); try { string appName = Application.ProductName; exDlgForm.Text = appName; exDlgForm.labelTitle.Text = String.Format(exDlgForm.labelTitle.Text, appName); exDlgForm.checkBoxRestart.Text = String.Format(exDlgForm.checkBoxRestart.Text, appName); exDlgForm.checkBoxRestart.Checked = this.RestartApp; // Do not show link label if OnShowErrorReport is not handled exDlgForm.labelLinkTitle.Visible = (OnShowErrorReport != null); exDlgForm.linkLabelData.Visible = (OnShowErrorReport != null); // Disable the Button if OnSendExceptionClick event is not handled exDlgForm.buttonSend.Enabled = (OnSendExceptionClick != null); // 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 (OnShowErrorReport != null) { SendExceptionClickEventArgs ar = new SendExceptionClickEventArgs(true, unhandledException, _dorestart); OnShowErrorReport(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(); } }
/// <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 } }