1

Nous construisons une grande application Web qui a de nombreuses couches. Pour communiquer avec la couche de gestion, nous utilisons une couche de service que la couche Web appelle lorsque des données sont nécessaires. Malheureusement, il semble que si des exceptions sont lancées dans la couche de gestion, il semble que les services du côté Web enveloppent les exceptions et les relancent. Nous recherchons un moyen clair d'encapsuler l'erreur et de la journaliser, sans que WCF ne contienne une nouvelle exception autour de l'original.Gestion des erreurs de couche et de couche de service - Meilleure façon?

Merci

Répondre

0

FWIW, chacun de nos exposés WCF méthodes de couche de service attrape un System.Exception et il fait passer à une aide HandleException (cela pourrait aussi être une méthode de classe de service de base, je suppose)

HandleException:

  1. enregistre l'erreur
  2. applique l'exception reformatage à des défauts SOAP (actuellement nous utilisons WCF Exception Shielding)
  3. applique une manipulation spécifique à l'exception (du format if (ex is SomeTypeOfException) ..
0

Il existe plusieurs façons de procéder. La solution que vous avez présentée n'est pas à moitié mauvaise, je crois, bien qu'elle ne soit pas très évolutive (le mélange d'une manipulation d'erreur spécifique à une entreprise avec un code lié au web crée une sorte de couplage). Tout cela dépend de votre achitecture: vous pouvez ajouter une couche superficielle et légère qui traduit les erreurs métier en erreurs web, qui sont traitées dans le code de gestion des erreurs de la couche Web. Vous pouvez également vous AoP et intercepter les appels et traduire les erreurs pour les couches ci-dessus.

Questions connexes