A friend of mine, Phil Canarsky, pointed out something to me today that I wasn't aware of.
If you catch an exception and then rethrow it like this:
try
{}
catch (Exception ex)
{
// Do Cleanup
throw ex;
}
You lose the original stack trace. You can avoid this by just doing a “throw;“ without specifying the exception.
Here is an article: http://dotnetguy.techieswithcats.com/archives/004118.shtml
Thank, Phil!