Here is how to handle global exceptions for different types of .Net applications:
1. Asp.Net:
System.Web.HttpApplication.Error event
Usually setup in Global.asax
MSDN: How to: Handle Application-Level errors.
Also see: Complete example for Error Handlers
2. WinForms:
System.Windows.Forms.Application.ThreadException event
MSDN: Application.ThreadException event
Blog: Top-Level Exception Handling In Windows Forms Applications
// Add the event handler for handling UI thread exceptions to the event. Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.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);
3. Console applications (also should work with Windows Services – havent checked this though):
System.AppDomain.UnhandledException event
MSDN: AppDomain.UnhandledException Event
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
4. WPF:
System.Windows.Application.DispatcherUnhandledException
5. Silverlight:MSDN: Application.DispatcherUnhandledException Event
public App() :base() //App.xaml.cs
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
Also see: WPF Global Exception Handler (StackOverflow)
Application.UnhandledException Event
MSDN: Application.UnhandledException Event
Also see: Silverlight Error Handlingpublic App()//App.xaml.cs { this.UnhandledException += this.Application_UnhandledException; InitializeComponent(); } private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e) {
//handle exception here.
}Also take a look at the EntLib Patterns and Practices pack for Silverlight (codeplex.com) {Logging Application Block}
More info:
No comments:
Post a Comment
Remember, if you want me to respond to your comment, then you need to use a Google/OpenID account to leave the comment.