c# 異常控制代碼 好象以前寫過,再寫一次.
using System;
using System.Collections.Generic;
//using System.Linq;
using System.Windows.Forms;
using System.Threading;
namespace ttt
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// Add the event handler for handling UI thread exceptions to the event.
Application.ThreadException += new ThreadExceptionEventHandler(Form_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 Form_main());
}//
// Handle the UI exceptions by showing a dialog box, and asking the user whether
// or not they wish to abort execution.
private static void Form_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)
{
//e.IsTerminating;//這個屬性告訴我們這個異常是否會導致應用終止
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);
}//
}//
}//