1

Existe-t-il un modèle OU une «meilleure pratique» pour créer des messages conviviaux dans la couche de présentation en utilisant des exceptions qui ont été lancées à partir du Business Layer?Quelle est la méthode suggérée pour afficher les messages d'exception sur l'interface utilisateur qui ont été générés dans Business Layer?

En fait, dans de nombreux cas, je préfère lancer des exceptions d'application et cela me force à les attraper sur l'interface utilisateur (pages aspx.cs). Et si le processus est complexe, ce qui peut produire de nombreux types d'exceptions différentes, je dois avoir plusieurs blocs catch pour produire des messages d'erreur spécifiques.

Y a-t-il un meilleur moyen de vous venir en tête? Un modèle peut-être pour des cas similaires?

grâce

Répondre

0

Vous pouvez utiliser une classe d'exception personnalisée pour renvoyer des erreurs via une exception à la couche d'interface utilisateur. Ces exceptions personnalisées peuvent alors contenir un message d'erreur qui sera significatif pour l'utilisateur, vous pouvez donc l'afficher comme vous le feriez pour tout autre message d'erreur.

Ainsi, vous n'aurez besoin que d'un seul gestionnaire d'exceptions dans l'interface utilisateur, au lieu de plusieurs pour chaque type d'erreur ...

2

Première: Je pense qu'il est préférable que la pratique pour intercepter des exceptions dans le code que je peux gérer à ce moment. Si je ne peux pas gérer juste le laisser promouvoir au niveau supérieur.

Deuxièmement: Il est possible d'attraper des exceptions au niveau mondial:

public static void RegisterExceptionHandler() 
{ 
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler (Application_UIThreadException); 
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); 

    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 
} 

Dans ces méthodes de traitement d'exception toutes les exceptions qui ne sont pas traitées sont attrapées. Ici vous pouvez informer l'utilisateur que quelque chose d'inattendu s'est produit.

Questions connexes