You need to handle
the System.Windows.Forms.Application.ThreadException
event
for Windows Forms. This article really helped me: http://bytes.com/forum/thread236199.html.
Application.ThreadException += new ThreadExceptionEventHandler(MyCommonExceptionHandlingMethod)private static void MyCommonExceptionHandlingMethod(object sender, ThreadExceptionEventArgs t)
{
//Exception handling...
}
AppDomain.UnhandledException and Application.ThreadException.
http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
using System;
using System.Security.Permissions;public class Example
{
[SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.ControlAppDomain)]
public static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);try {
throw new Exception("1");
} catch (Exception e) {
Console.WriteLine("Catch clause caught : {0} \n", e.Message);
}throw new Exception("2");
}static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception) args.ExceptionObject;
Console.WriteLine("MyHandler caught : " + e.Message);
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating);
}
}
Catch Application Exceptions in a Windows Forms
Application,码迷,mamicode.com
Catch Application Exceptions in a Windows Forms
Application