Exception
Résolu
remousse
Messages postés
299
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'ai une méthode Java qui throws une exception. A l'intérieur de celle-ci j'ai un bloc try catch.
J'aimerai que mon exécution puisse continue même si l'exception est rencontrée.
Voici mon code :
En fait dans mon try si j'ai une MyException j'aimerai que l'exécution continue afin de faire le setCode(1).
Or cela ne fonctionne pas et le traitement s'arrête. Cela est surement du au throws mais je ne peux pas le retirer.
Avez-vous des idées ?
Par avance merci.
J'ai une méthode Java qui throws une exception. A l'intérieur de celle-ci j'ai un bloc try catch.
J'aimerai que mon exécution puisse continue même si l'exception est rencontrée.
Voici mon code :
public MaClasse getInfo(final Requete request) throws MyException {
final List<Test> list = request.getListe();
for (final Test test : list) {
do = false;
appel = false;
if (do) {
try {
......
} catch (final MyException e) {
appel = true;
LOG.fatal("", e);
}
if (appel) {
setCode(1);
}
}
}
........
}
En fait dans mon try si j'ai une MyException j'aimerai que l'exécution continue afin de faire le setCode(1).
Or cela ne fonctionne pas et le traitement s'arrête. Cela est surement du au throws mais je ne peux pas le retirer.
Avez-vous des idées ?
Par avance merci.
A voir également:
- Exception
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Erreur d'application : une exception côté client s'est produite (consultez la console du navigateur pour plus d'informations). - Forum Google Chrome
- Une exception non gérée s'est produite dans votre application - Forum Word
- A java exception has occurred - Forum Minecraft
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? ✓ - Forum Word
2 réponses
c'est ton LOG.fatal("", e); ou ton code setCode(1)
qui doit générer une MyException,
vérifie que ton LOG.fatal("", e); se fait comme il faut
qui doit générer une MyException,
vérifie que ton LOG.fatal("", e); se fait comme il faut
Il suffit de faire un try/catch autour du LOG.fatal, voire de carrément l'enlever s'il ne sert à rient, pour éviter d'avoir une exception dans le traitement de l'exception...
Remarque : "do" ne peux pas être un nom de variable, c'est un mot réservé du langage. Et si tu fais immédiatement se suivre une déclaration "do2=false" et "if(do2)" il n'y a aucune chance de rentrer dans le if....
De plus, si la seule utilité de "appel" est de faire ton traitement "setCode(1);" quand tu n'as pas eu d'exception, alors il vaut mieux mettre ton "setCode(1);" à la fin du try, vu que si il y a une exception il passera directement sur le catch.
Enfin, dernière remarque, à part si tu as besoin de "list" dans ton traitement, tu peux directement mettre ton "getListe" dans la boucle for, ça évite là encore une variable inutile.
Remarque : "do" ne peux pas être un nom de variable, c'est un mot réservé du langage. Et si tu fais immédiatement se suivre une déclaration "do2=false" et "if(do2)" il n'y a aucune chance de rentrer dans le if....
De plus, si la seule utilité de "appel" est de faire ton traitement "setCode(1);" quand tu n'as pas eu d'exception, alors il vaut mieux mettre ton "setCode(1);" à la fin du try, vu que si il y a une exception il passera directement sur le catch.
Enfin, dernière remarque, à part si tu as besoin de "list" dans ton traitement, tu peux directement mettre ton "getListe" dans la boucle for, ça évite là encore une variable inutile.
public MaClasse getInfo(final Requete request) // throws MyException
{
//final List<Test> list = request.getListe();
//for (final Test test : list)
for (final Test test : request.getListe())
{
//do2 = false;
//appel = false;
// if (do2)
//{
try
{
// ...
setCode(1);
}
catch (final MyException e)
{
//appel = true;
try
{
LOG.fatal("", e);
}
catch (Throwable t)
{
System.err.println(t);
}
}
//if (appel)
//{
// setCode(1);
//}
//}
}
}