Java: comment récupér une Exception

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

8 réponses

  1. maily Messages postés 7560 Statut Contributeur 453
     
    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
  2. omar
     
    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
    1. maily Messages postés 7560 Statut Contributeur 453
       
      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
  3. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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
  4. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    dans un fichier texte....

    Chouba
    Casque Bleu forumique
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. omar
     
    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
  7. omar
     
    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
  8. maily Messages postés 7560 Statut Contributeur 453
     
    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
  9. omar
     
    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