2009-03-18 5 views
1

Je commence tout juste à utiliser le bloc Gestion des exceptions de bibliothèque d'entreprise.EntLib 4.0: Bloc d'application de gestion des exceptions

Cela semble un peu lourd.

Dois-je vraiment faire

try 
{ 
    //Do something with a DirectoryInfo object 
} 
catch(DirectoryNotFoundException ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

Partout où je veux gérer les exceptions?

Ou devrais-je simplement envelopper le niveau supérieur dans

try 
{ 
    //Entrypoint code 
} 
catch(Exception ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

J'avais l'impression que je pouvais avec ce aspect attributs?

Répondre

2

De combien d'emplacements avez-vous besoin pour gérer les exceptions?

Ce bloc d'application est principalement utilisé pour gérer les exceptions sur les limites des couches. Par exemple, le code de niveau supérieur de votre couche d'accès aux données peut l'utiliser pour configurer si et comment journaliser les exceptions DAL, pour envelopper une exception non-DAL, etc. Mais vos méthodes internes privées ne doivent pas gérer les exceptions à tout.

Et non, EAL ne fait pas d'attributs.

+0

Ok c'est bon, j'ai différents services qui travaillent ensemble pour résoudre un problème. Je suppose que la journalisation est en fait plus pertinente pour mes exceptions internes. Je fais face à des fichiers et des dossiers qui ont tendance à jeter des exceptions et beaucoup de types d'exceptions ... Merci cela a aidé. –

+0

Pourquoi plus important pour les intérieurs. Je voulais dire le contraire. Cal l'EAB au niveau du service et des limites de la couche. N'attrapez pas les exceptions à des niveaux bas à moins que votre logique ne fasse quelque chose de différent avec elles, comme par exemple IOException d'encapsulation afin que vous puissiez ajouter un nom de fichier ou un autre contexte. –

Questions connexes