I apologize if this is a simple question (my Google-Fu may be bad today).
Imagine this WinForms application, that has this type of design: Main application -> shows
You may be able to use the AppDomain.CurrentDomain.UnhandledException handler to intercept the errors on the main UI thread and handle them per-dialog. From MSDN:
In applications that use Windows Forms, unhandled exceptions in the main application thread cause the
Application.ThreadException
event to be raised. If this event is handled, the default behavior is that the unhandled exception does not terminate the application, although the application is left in an unknown state. In that case, theUnhandledException
event is not raised. This behavior can be changed by using the application configuration file, or by using theApplication.SetUnhandledExceptionMode
method to change the mode toUnhandledExceptionMode.ThrowException
before theThreadException
event handler is hooked up. This applies only to the main application thread. TheUnhandledException
event is raised for unhandled exceptions thrown in other threads.