2008-11-13 8 views

Répondre

2

À une limite de niveau physique.

Également dans le gestionnaire d'exceptions de niveau supérieur du client.

I.e. Si votre niveau métier s'exécute sur un serveur, consignez les exceptions avant de les propager au client. C'est facile si vous exposer votre niveau d'entreprise en tant que services Web WCF, vous pouvez implémenter un gestionnaire d'erreur qui effectue la journalisation avant de propager une erreur SOAP au client.

1

Si vous lancez l'exception, vous devriez l'enregistrer quand elle se produit, puis le faire exploser. Dans le cas contraire, seul l'utilisateur final doit enregistrer une exception (vous pouvez avoir beaucoup de tracés, bien sûr, auquel cas il peut être connecté un peu).

L'utilisateur final peut être un composant d'interface utilisateur ou d'un service ou quelque chose ...

Si vous gérez une exception dans votre code quelque part - alors qui est l'utilisateur final et vous devez vous connecter là. Dans la plupart des applications et dans la plupart des cas, il doit être enregistré par l'interface utilisateur lorsqu'il affiche le message d'erreur à l'utilisateur.

1

J'autorise généralement les exceptions à se propager et à les journaliser lorsqu'elles atteignent le niveau le plus élevé. Par exemple

main { 
    try { 
     application code 
    } catch { 
     preform logging 
    } 
} 

Mais cela n'a de sens que pour les exceptions fatales. D'autres exceptions je les connecte habituellement dans le bloc qui gère la récupération de cette exception.