Bonjour,
Je suis face à un comportement très étrange de l'application sur laquelle je travaille, peut-être que vous pourrez m'éclairer....
J'ai le code suivant, que j'ai simplifié pour les explications (oui, le problème pourrait venir ce que j'ai enlevé, mais je ne peux pas tout poster ici, ça serait illisible) :
Une méthode "main" qui traite en boucle des données, avec une gestion d'exception de façon globale:
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 public static void main(String[] args){ try { while (boucle) { //Début du traitement // appel d'une methode maMethode(arg1, arg2); //Suite du traitement Log.info("Traitement en cours") } //Log de fin de traitement Log.info("Fin du traitement") } catch(Exception e){ //Traitement de l'exception //Log exception Log.info("Exception") } finally{ // Log finally Log.info("Finally") } }
Et une méthode interne appelant un service externe que je ne maîtrise pas. Ce service peut potentiellement lancer diverses exceptions.
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 private Object maMethode(Object arg1, Object arg2){ Object result = valeurParDefaut; try{ //Appel d'une méthode exterieure complexe que je ne maitrise pas result = methodeExterieure(); catch (final Exception e) { // traitement de l'exception } return result; }
Donc normalement, si la méthode extérieure lance une exception, le traitement dans la boucle continue et passe aux données suivantes.
J'espère que c'est assez clair...
Mon problème est le suivant :
Le traitement tombe en erreur et la boucle s’arrête pour une raison inconnue.
J'ai dans les logs les messages suivants :
- Info : Traitement en cours
- Warning avec stacktrace lancé par la méthode exterieure
- Info : Finally
Donc visiblement, la méthode extérieure plante, affiche un warning mais pas d'exception. Et le traitement s'arrête là.
Je ne comprend absolument pas ce comportement.
Je remercie vivement quiconque prendrait la peine se poser sur mon problème et m'éclairer de ses lumières !
Partager