如何使用ASP.NET处理winform全局异常

  作者:bea

如何使用ASP.NET处理winform全局异常,请看下面实现代码: static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { // Add the event handler for handling UI thread exceptions to the event. Application.ThreadException += new Threa

如何使用ASP.NET处理winform全局异常,请看下面实现代码:

static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
// Add the event handler for handling UI thread exceptions to the event.
Application.ThreadException += new ThreadExceptionEventHandler(Form1_UIThreadException);

// Set the unhandled exception mode to force all Windows Forms errors to go through
// our handler.
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

// Add the event handler for handling non-UI thread exceptions to the event.
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

//------------------------
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

// Handle the UI exceptions by showing a dialog box, and asking the user whether
// or not they wish to abort execution.
private static void Form1_UIThreadException(object sender, ThreadExceptionEventArgs t)
{
MessageBox.Show("1:"+t.Exception.ToString());
}

// Handle the UI exceptions by showing a dialog box, and asking the user whether
// or not they wish to abort execution.
// NOTE: This exception cannot be kept from terminating the application - it can only
// log the event, and inform the user about it.
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = (Exception)e.ExceptionObject;
string errorMsg = "An application error occurred. Please contact the adminstrator " +
"with the following information:\n\n";
errorMsg += ex.Message + "\n\nStack Trace:\n" + ex.StackTrace;

MessageBox.Show("2:" + errorMsg);
}

}

有用  |  无用

猜你喜欢