The rule of thumb is to avoid Catching and Throwing the basic Exception
object. This forces you to be a little smarter about exceptions; in other words you should have an explicit catch for a SqlException
so that your handling code doesn't do something wrong with a NullReferenceException
.
In the real world though, catching and logging the base exception is also a good practice, but don't forget to walk the whole thing to get any InnerExceptions
it might have.