Je vous propose une toute petite source qui vous permet d'automatiser les messages d'erreurs.
Rien de très compliqué : une énumération des erreurs possibles, un fichier de ressources pour stocker le message à afficher.
Les points techniques :
Utilisation d'un RessourceBundle => possibilité de faire des localisations des messages assez simplement (il vous faudra tout de même modifier 2-3 choses dans ma source pour y arriver, car je n'ai pas prévu le cas, mais c'est rien à faire !).
Enumération avec des propriétés étendues (qui a dit que les enum ne servaient qu'à lier un entier à un nom de constante ?).
L'avantage de ma source ? Faire des messages d'erreurs standard en une seule ligne de code !
Petite mise à jour afin d'ajouter une fonctionnalité : l'écriture d'un log des erreurs + passage à un pattern singleton du coup.
L'utilisation du log est facultative.
De plus, le formattage du log est personnalisable : vous pouvez soit créer une nouvelle classe implémentant l'interface ILogWritter, soit étendre la classe CSimpleLogWritter, soit utilise simplement la classe CSimpleLogWritter pour avoir le formattage par défaut.
Source / Exemple :
// très simple à utiliser pour afficher une erreur :
// sans log :
CError.createInstance();
CError.getInstance().showError(EErrorType.ErreurCreerBase, true, true, "");
// avec log :
CError.createInstance(System.getProperty("user.dir") + "\\test.log", new CSimpleLogWritter());
CError.getInstance().showError(EErrorType.ErreurCreerBase, true, true, "");
1 sept. 2007 à 14:33
Merci de tes remarques, t'as tout à fait raison !
1 sept. 2007 à 13:16
L'idée d'une gestion simplifiée des erreurs est indispensable. Cependant, créér ton propre logger fichier, alors qu'il existe plusieurs librairies toutes faîtes reconnues comme standard t'impose une contrainte en plus je pense. (commons-log et log4j par exemple).
Maintenant l'idée est bonne dans le contexte d'un application SWING. Plusieurs remarques pour améliorer cette gestion :
1. Dans une ligne de fichier properties tu peux insérer des paramètres
Par exemple :
error.invalidparam=Le paramètre {0} passé dans la méthode {1} est invalide.
Pour construire le message d'erreur tu fais:
MessageFormat.format(monResourceBundle.getString("error.invalidparam"), new Object[] {nomParametre, nomMethode});
2. Créer une classe de type ErrorHandler avec tes méthodes statiques à appeler.
public void gestionErreurParametreInvalide(String nomParametre, String nommethode) {
String monMessage = MessageFormat.format(monResourceBundle.getString("error.invalidparam"), new Object[] {nomParametre, nomMethode});
[..]
}
=> Je ne passe pas le type d'erreur en paramètre je fais une méthode spéciale et c'est dans la méthode que j'appele le bon error code, le bon type d'erreur etc....
En espérant être constructif.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.