2008-09-22 9 views
5

Je me demande quelle est la meilleure façon de gérer les messages d'erreur dans mon application.Meilleure façon de gérer les messages d'erreur

Actuellement, je travaille sur une application Web et tous les messages d'erreur sont stockés dans la base de données et nous les obtenons par ID, négatif est une erreur, et positif sont des messages de réussite.

le problème est qu'il est difficile à maintenir et garder le suivi des messages texte.

Quelles sont vos approches?

Répondre

4

De manière générale, je conserve le texte des messages d'erreur dans les fichiers de ressources. Si vous utilisez .NET 2.0 ou supérieur (Visual Studio 2005 ou supérieur), les fichiers de ressources sont automatiquement compilés en classes fortement typées, ce qui rend le code qui accède à ces messages beaucoup plus clair et lisible.

(EDIT: Ayant vu un autre commentaire qui mentionne la localisation, je me sens obligé de le mentionner ici aussi: Les fichiers de ressources .NET font un excellent travail de localisation.Vous pouvez obtenir le texte localisé de la ressource via l'exact même code, avec juste quelques ajustements mineurs pour fournir CultureInfo.)

Cela dit, il semble qu'une partie de ce domaine de problème est un numéro de message. Est-ce que ces erreurs sont lancées à partir de la base de données (par exemple, dans le cadre de procs ou de déclencheurs stockés)? Dans ce cas, le stockage de la base de données est probablement le bon endroit pour eux, ne serait-ce que parce que cela les documente le plus près de l'endroit où les «nombres magiques» sont utilisés.

2

Si vous allez les localiser, j'utiliserais le texte anglais comme clé, puis j'effectuerais une recherche dans le stockage de votre choix (base de données SQL, magasin de fichiers ou autre), et puis renvoyez la chaîne correctement localisée.

Si la clé demandée n'existe pas dans le magasin, vous risquez de générer une erreur de type texte, par exemple en envoyant un mail à un développeur.

Pour plus d'inspiration, voir GNU gettext.

Questions connexes