In XAML, you can hook an application-level event that will fire whenever an unhandled error occurs anywhere in your application by overriding the OnStartup event in the App.xaml.cs file.
Here's an example excerpt:
protected override void OnStartup(StartupEventArgs e)
{
// define application exception handler
Application.Current.DispatcherUnhandledException += new
DispatcherUnhandledExceptionEventHandler(
AppDispatcherUnhandledException);
// defer other startup processing to base class
base.OnStartup(e);
}
void AppDispatcherUnhandledException(object sender,
DispatcherUnhandledExceptionEventArgs e)
{
//do whatever you need to do with the exception
//e.Exception
e.Handled = true;
}
Now the AppDispatcherUnhandledException event will fire whenever your code doesn't handle the exception at a lower level. The exception itself is in the DsipatcherUnhandledExceptionEventArgs object (e.Exception).