Problème sur une gestion des exceptions
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:
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:
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 !