try-catch chaque connexion db?

Est-il recommandé de mettre un bloc try-catch dans chaque fonction qui ouvre une connexion DB et le journal de l'erreur, ou devrais-je plutôt repérer les erreurs dans une couche supérieure de l'application?

public static Category GetCategoryByName(string name)
{
    Category result;
    try
    {
        using (IDbConnection conn = ConnectionHelper.CreateDbConnectionByName(_connectionStringName))
        {
            conn.Open();
            using (IDbCommand cmd = conn.CreateCommand())
            {
                //do stuff
            }
        }
    }
    catch(Exception e)
    {
         //log error here?
    }
    return result;
}

ou plutôt

try
{
    Category myCat = DataTools.GetCategoryByName("myCat");
    //other stuff
}
catch(Exception e)
{
   //log error here?
}

Pour résumer: si des erreurs sont pris le plus tôt possible dans le code? Ou devrais-je plutôt les attraper où je avoir plus d'informations sur le contexte?

OriginalL'auteur magnattic | 2011-01-13