2009-05-29 7 views
0

J'ai besoin de traduire les chaînes de résultats d'une bibliothèque en exceptions. Chaque chaîne a un code de résultat numérique, suivi d'un caractère pipe, puis d'autres données spécifiques au code. Je pense à utiliser une exception personnalisée avec une propriété ResultCode et à stocker une table de recherche de chaînes de messages avec un code de résultat, que je formaterai avec un tableau d'infos de message avant de lancer l'exception. Quel est un bon moyen de stocker cette table de valeurs int-string?Structure de recherche pour les messages d'erreur

Répondre

1

Lorsque les données utilisées pour décider de l'erreur à lever ne sont jamais utilisées en dehors d'une classe, l'approche optimale est actually hard code the decision. C'est ce que propose la programmation d'applications, par opposition à la programmation de systèmes ou de cadres. Je souffre assez de narcissisme sans m'imaginer le fournisseur divin d'un cadre de programmation d'entreprise parfait pour reconnaître que parfois, mon code ne sera utilisé que dans le seul endroit où je le développe.

Par conséquent, j'ai développé deux solutions possibles à ce problème : 1. Le dictionnaire suggéré de chaînes (codes) comme clés de divers types d'exceptions, initialisé dans un constructeur; ou 2. Une instruction 'switch' de taille moyenne, avec le même codage en dur que le constructeur ci-dessus.

Dans un scénario à usage unique qui est très susceptible de rester à usage unique pendant la durée de vie de l'application, l'une ou l'autre de ces solutions est plus que juste acceptable; C'est une solution rentable, basée sur YAGNI, qui me permet de consacrer plus d'énergie aux problèmes qui requièrent de l'attention.

1

Si vous avez besoin de stocker ces chaînes que vous avez déjà, vous devez utiliser un Dictionary<int,string> simple, où le code d'erreur est la clé et la chaîne est la valeur.

Si vous tapez vous-même les chaînes, vous devriez envisager d'utiliser un fichier de ressources.

Questions connexes