Throwing *Correct* Exceptions
I can't emphasize enough:
"As described in more detail later, catching System.Exception is nearly always the wrong thing to do as well."
"As described in more detail later, catching System.Exception is nearly always the wrong thing to do as well."