I\'m seeing some wierd behaviour when throwing exceptions and catching them in the Application.ThreadException event handler.
Application.ThreadException
Basically whats happening
if (e.Error != null) { throw new Exception("worker_RunWorkerCompleted", new Exception("Inner", new Exception("Inner inner"))); }
You get "inner inner" at the end. It seems that this is the behavior of Application_ThreadException method to look at the inner-most exception.