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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.