.Net异常处理的一种方式
Application.ThreadException += new ThreadExceptionEventHandler(MainUIThreadExceptionHandler);
//实现
public static void MainUIThreadExceptionHandler(object sender, ThreadExceptionEventArgs t)
{
//tell the user there is a boo-boo occured
MessageBox.Show("XXX系统遇到以下问题:"
+ (char)10 + (char)13
+ t.Exception.Message
+ (char)10 + (char)13
+ " 请及时与管理员联系!"
+ (char)10 + (char)13
+ "我们对给你造成的不便表示歉意!"
, "XXX系统遇到了问题", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification);
}
//只能 处理 主线程的,处理不 到 子线程的
子线程处理方法
public delegate void WorkerThreadHandlerDelegation(Exception e);
void WorkerThreadExceptionHandler(Exception e)
{
Program.MainUIThreadExceptionHandler(this, new System.Threading.ThreadExceptionEventArgs(e));
}
//子线程异常处理中
BeginInvoke(new WorkerThreadHandlerDelegation(WorkerThreadExceptionHandler), new object[] { exc });
详细的可以参考微软的讲座
也可以参考 Exception Handling Application Block