You should only catch an exception if you can do something about it.
"Do something" generally includes:
If you can't do one of these things, then don't catch the exception.
ProjectTracker could probably use a little more exception handling than it has at the UI layer. But at the data access and business layers there's really nothing to be done about exceptions, and so there's no reason to catch them.
In the DataPortal_XYZ methods it is critical that you do not catch exceptions, or if you do that you throw a new exception. Having an exception flow up from a DP_XZY method is how TransactionScope and EnterpriseServices know to roll back the failed transaction.
Copyright (c) Marimer LLC