Rechercher : dans
Par :

Java: comment récupér une Exception

Dernière réponse le 31 jui 2003 à 16:01:16 omar, le 30 jui 2003 à 11:40:41 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « java: comment récupér une Exception » dans :
Java - Les exceptions VoirLa nécessité de détecter les erreurs Tout programme comporte des erreurs, même si celui-ci semble fonctionner à merveille. Chaque programmeur essaye de réduire au minimum le nombre d'erreurs, mais toutes les erreurs ne peuvent pas forcément être...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Java - Les objets VoirLa création d'objets Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres...

1

maily, le 31 jui 2003 à 11:12:56

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   :-))))

Répondre à maily

2

omar, le 31 jui 2003 à 11:37:16

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!

Répondre à omar

3

maily, le 31 jui 2003 à 12:04:53

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   :-))))

Répondre à maily

4

choubaka, le 31 jui 2003 à 14:31:26

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

Répondre à choubaka

5

omar, le 31 jui 2003 à 15:05:54

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!!

Répondre à omar

6

choubaka, le 31 jui 2003 à 15:22:12

Dans un fichier texte....

Chouba
Casque Bleu forumique

Répondre à choubaka

7

omar, le 31 jui 2003 à 15:38:42

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!

Répondre à omar

8

maily, le 31 jui 2003 à 15:43:47

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   :-))))

Répondre à maily

9

 omar, le 31 jui 2003 à 16:01:16

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() );
}

Répondre à omar