Java: comment récupér une Exception

Fermé
omar - 30 juil. 2003 à 11:40
 omar - 31 juil. 2003 à 16:01
Bonjour voila lorsque une erreur est généré sur la cosnle ms-dos s affiche le chemin des erreurs (cf code ci-dessous)
or ma fenetre dos étant de taille limité je ne vosi pas les 3 premières lignes qui m'importent a savoir la ligne de l erreur

Donc j aimerais bien recupere le printsacktrace pr l afficher comme je veux (voite de dialgue., ecriere dans un fichier.)(les 5 premires lignes sont suffisantes)
Or l'objet retounée par .printStackTrace()
est du type void

Cmt donc le récuperer?


catch (Exception ex)
{

ex.printStackTrace()
}


A+ Omar
A voir également:

8 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 juil. 2003 à 15:43
Bien, alors, ma foi, tu utilise la fonction

getStackTrace()

qui renvoie un
StackTraceElement

et pour avoir la ligne tu utilise la fonction
getLineNumber()

que tu n'as plus qu'à afficher...

Tout ça se trouve dans l'aide de java sur le site de sun...
http://java.sun.com/j2se/1.4.1/docs/api/index.html




Maily   :-))))
2
Me faire un toString() ne m approte pas grand chose hormis savoir c quoi comme type d exception (je l ai deja fait) cela ne m indique pas à quel ligne s 'est produite l erreur : ce qui est iniqué dans le printstacktrace!
1
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 juil. 2003 à 12:04
Désolée d'avoir essayé de t'aider!
Un "merci, ce n'est pas ce que je voulais, mais peut etre je n'ai pas été assez claire dans ma question!" aurait été le bienvenu

Maily   :-))))
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
31 juil. 2003 à 14:31
remarque peut être stupide, mais il est possible de modifier le format de la fenêtre DOS de manière à tout afficher.

clic droit sur la barre de titre et propriètés

Chouba
Casque Bleu forumique
1
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
31 juil. 2003 à 15:22
dans un fichier texte....

Chouba
Casque Bleu forumique
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chouba j y ai pensé dans un fichier texte mais le fait que la méthode printstacktrace son type retounée est void n aide pas!
1
Merci maily mais c bizarre avant que tu ne répondes ja i trouvé la réponse dans l API mais mon message a été effacé? modérateur?

Ca donne donc:
catch(Exception e)
{
StackTraceElement [] ligne=null;
//e.printStackTrace();
ligne=e.getStackTrace();

for (int i=ligne.length-1;i>=0; i--)
{
System.out.println("class name: "+ligne[i].getClassName()+" File name: "+ligne[i].getFileName());
System.out.println("ligne :"+ligne[i].getLineNumber() +" Method name:" +ligne[i].getMethodName() );
}
1
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
31 juil. 2003 à 11:12
Bonjour...

Bon alors, c'est tout simple!

Ton exception, tu peux lui appliquer un joli toString(), et ainsi tu auras ton erreur!
Ensuite, pour la récupérer, tu déclares une exception en dehors de ton try catch et lorsqu'il y a une exception pour de vrai, et bien tu la copie dans l'exception déclarée en dehors!

et après, tu en fais ce que tu veux!!

Même quand tu fais
System.out.println(e);

ça marche!!

Bonne journée

Maily   :-))))
0
Nan ca ne marche pas (le printstacktrace est trop log!) c la premiere chose que j ai tenté
pourtant il doit surement y avoir un moyen de choper le printstacktrace!!

Car pr des servlets java, Tomcat parvient à l'afficher sur la fenetre web c que ca doit etre récupérable!!
0