Quel est le moyen suggéré pour afficher les messages d'exception sur l'interface utilisateur qui ont été produites dans la couche d'affaires?

StackOverflow https://stackoverflow.com/questions/2766309

Question

Y at-il un modèle ou « une meilleure pratique » sur la création de messages amicaux de l'utilisateur dans la couche de présentation en utilisant des exceptions qui ont été éjectés de la couche d'affaires?

En fait, dans bien des cas, je préfère lancer des exceptions d'application et cela me forçait à les attraper l'assurance-chômage (aspx.cs pages). Et si le processus est complexe qui peut produire de nombreux types d'exceptions que je dois avoir de nombreux blocs catch pour produire des messages d'erreur spécifiques.

Y at-il une meilleure façon de venir à votre esprit? Un modèle peut-être pour des cas similaires?

Merci

Était-ce utile?

La solution

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

De cette façon, vous aurez seulement besoin d'un seul gestionnaire d'exceptions dans l'interface utilisateur, au lieu de plusieurs pour chaque type d'erreur ...

Autres conseils

D'abord: Je pense qu'il est préférable que la pratique des exceptions de capture dans le code que je peux gérer à ce moment. Si je ne peux pas gérer simplement laisser promouvoir à un niveau supérieur.

Deuxièmement: Il y a une possibilité d'exceptions prises 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 cette exception méthodes de gestion toutes les exceptions qui ne sont pas traitées sont attrapées. Ici, vous pouvez informer l'utilisateur que quelque chose « inattendu » a happend.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top