-
les exceptions java
Bonjour à tous,
Sous websphere, je rencontre un petit probleme qui genere des exceptions dans le fichier de log serveur (!= log appli):
j'ai une methode (webservice) qui quand elle est appellee peut lever une exception e. Cette methode renvoie un int, donc quand je catch l'exception je suis obligé soit de mettre un return qqch soit un throw, en l'occurence ici c'est le throw (impossible de retourner un int pour des raisons fonctionnelles), comme il n'y a pas moyen de re-traiter cette exception apres elle apparait dans les logs serveur. Mon but serait sans trop modifier le code qu'elle n'apparaisse plus dans les logs serveur.
-
Ben pas possible. Ca apparaît dans les logs parce que rien ne la catche ni ne la traite. Donc c'est Web Sphere qui la récupère et la trace. Pour ne pas la faire apparaître dans les logs, faut pas la lever. Après, à toi de voir comment en changeant éventuellement la sémantique de l'entier retourné. Par exemple si ta méthode doit toujours renvoyer un entier positif (elle renvoie un prix, par exemple), tu dis que finalement la méthode peut renvoyer un entier négatif et que dans ce cas-là c'est qu'il y a eu un pb. Tu renvoies alors un entier négatif dans ton catch de l'exception.
Ce que je ne comprends pas dans ta question c'est lever une exception "pour des raisons fonctionnelles" : si c'est pour des raisons fonctionnelles, c'est que c'est un cas prévu qui doit être traité.
-
typiquement j'ai un truc de ce type:
public int methode1(...){
int titi;
switch titi
case -1 throw MonException ("une exception");
....
}
public int methode2(...)throws MonException{
try{
int tutu=methode1;
}
catch (MonException e){
log.debug(...);
throw e; //on ne peut pas mettre un int (question de spec)
}
}
-
Ben faut changer la spec... :roll:
-
merci pour ta reponse mac
en fait c'est une correction que je dois apporter au code d'une appli pour faire en sorte qu'elle crache moins d'exceptions dans les logs serveur, mais que ca apparaisse plutot dans les logs appli. Je ne pense pas que a la conception ils avaient prevu que dans ce cas precis y aurait autant d'exceptions dans les logs serveur (le fichier est assez lourd et peu lisible).
-
Effetivement, dans ce cas là, tu n'as pas 36000 solutions. Soit tu changes la spec de façon à retourner un entier au lieu d eremonter une exception, soit tu remontes l'exception mais tu la catches plus haut.