Exception / Log / Bonne pratique
Bonjour,
je continue le tour des sujets qui me posent problème, et pour lesquels je n'ai pas forcément bien compris les bonnes pratiques.
Aujourd'hui, j'ai un problème avec les exceptions couplées à un logger.
J'ai lu cet article fort intéressant, mais cela ne répond pas forcément à mes interrogations :
http://anisfrikha.developpez.com/tut...xceptions/#LVI
Imaginons une classe, dans laquelle une méthode en appelle une autre d'une autre class, elle même appelant une 3ème méthode d'une 3ème class.
En gros F1->F2->F3.
Quelle est la bonne manière d'opérer pour logger ce qu'il faut, et bien remonter les exceptions ?
Je m'explique, actuellement je vois ce genre de pratique dans le projet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public void F1();
{
try {
F2();
.....
} catch (Exception ex) {
Log.error("message 1", ex);
}
}
public void F2();
{
try {
F3();
.....
} catch (Exception ex) {
Log.error("message 2", ex);
Throw ex;
}
}
public void F3();
{
try {
.....
} catch (Exception ex) {
Log.error("message 3", ex);
Throw ex;
}
} |
Est ce normal finalement pour une exception générée dans F3 d'avoir finalement 3 écritures dans le log ?
Serait il plus judicieux de virer les appels aux Log dans F2 et F3 ? je présume que non car F2 peut parfaitement planter pour du code autre que l'appel à F3...
Devrait on remplacer les bloc try...catch par un throws global sur la méthode pour F2 et F3 ?
Bref me conseillez vous ?
Par avance merci.