I am working on a C# project and want to make use of the UnhandledException event to catch any exceptions I may have missed in my project (hoping there won\'t be any but to
Assuming that all of your projects are running in the same appdomain, this will work correctly. We have this exact code encapsulated in a common DLL that is shared among numerous applications.
An additional suggestion: if this is used in Windows Forms applications, you probably also want to add a handler for System.Windows.Forms.Application.ThreadException. This serves as a backstop when, for example, someone forgets to add exception handling to a control event.
It is possible to load an assembly into a different application domain, but as long as you load the assemblies (like class libraries) into the current application domain this will handle the exception.
Relationship between application domains and assemblies:
http://technet.microsoft.com/en-us/subscriptions/index/43wc4hhs(v=vs.80).aspx
For instance, Assembly.LoadFile()
or Assembly.Load()
will load the assembly into the current app domain.
Your code could be creating a new app domain with:
AppDomain.CreateDomain(..)
, then it could load assemblies into this domain, which would not be handled by your code.
If you reference libraries in your project they will be loaded into the current app domain.