Original link: How .NET handles exceptions internally (and why they're expensive) / Elmah.
I am a traditionalist, so I believe exceptions should only be used for exceptional cases - meaning that performance of exceptions does not matter.