2010-07-13 15 views
2

J'ai une application qui offre son Business Layer à travers un niveau de service développé avec WCF. Ce à quoi je pense est: cette couche de service offre une méthode opérationnelle comme Créer, Mettre à jour et ainsi de suite. Ces opérations redirigent ensuite ces appels vers le Business Layer. La question est: supposons que l'un de ces appels n'accepte pas une valeur d'entrée nulle (comme: Créer un objet nul), où est le meilleur endroit pour effectuer la vérification? Ma réponse personnelle est dans les deux endroits (service et affaires) car je peux garantir la réutilisation du Business Layer sans utiliser le Service Layer et viceversa.Où placer une exception dans une architecture en couches?

Ai-je raison?

Merci Marco

Répondre

1

Votre code de bibliothèque ou le code qui est utilisé par -couches supérieures dans votre application doit toujours que jeter exceptions et ne vous inquiétez pas de la façon dont de traiter avec eux.

Ceci est important car vous pouvez utiliser cette bibliothèque à plusieurs endroits à des fins différentes.

Dans la couche de présentation de votre application, si vous utilisez un code de bibliothèque et que vous connaissez les exceptions possibles, essayez-les avec try/catch.

0

si vous ne gérer l'erreur dans le DAL ou BLL, il bouillonne jusqu'à ce que vous l'attraper. Les exceptions ne sont pas "écrasées". Si vous l'avez géré dans la DAL, vous n'avez plus d'exception. Si vous ne l'avez pas entièrement géré, le BLL peut toujours émettre une autre exception en raison d'une erreur mal gérée dans la couche d'accès au client.

La règle générale va comme ceci:

gérer les erreurs spécifiques et à ne pas utiliser un fourre-tout générique. Autoriser toutes les exceptions imprévues à faire des bulles plus haut dans la pile. Essayez d'exécuter FxCop sur votre projet pour voir où vous enfreignez les meilleures pratiques. http://www.gotdotnet.com/team/fxcop