IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[Exception] récupération de la stack trace d'une Throwable


Sujet :

API standards et tierces Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [Exception] récupération de la stack trace d'une Throwable
    Je récupère une Throwable et je désirerais stoker la stack trace dans
    un tableau de String pour l'exploiter ultérieurement.

    En jdk 1.4, il y a la formidable méthode getStackTrace qui me renvoie
    les informations dont j'ai besoin. Seulement, je travaille encore avec une
    jdk 1.3 qui ne sait faire que des printStackTrace(...) dans un PrintWriter
    ou un OutputStream.

    Comment faire pour récupérer ce contenu dans un objet que je peux
    exploiter ?

    Merci

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    bonjour,

    ben sans getStackTrace(), je vois pas autre chose que de
    faire un printStackTrace dans in fichier, puis de le lire.

    Mais tu seras d'accord avec moi que cette solution n'est pas
    envisageable

    Bon courage

  3. #3
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re,

    j'ai mieux !!

    télécharge le sdk 1.4

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Pas besoin de la stocker dans un fichier, tu peux utiliser un StringWriter pour recuperer facilement la trace ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StringWriter sw = new StringWriter();
    t.printStackTrace(new PrintWriter(sw));
    String trace = sw.toString();
    Voila, apres tu peux decouper cette chaine suivant les infos que tu veux recuperer ...

    Bulbo

  5. #5
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    En effet,

    c'est vraiment plus pratique !

  6. #6
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Salut,
    une solution,serais de créer ta propre classe qui hérite de outputStream et que tu passerais en paramètre au printStackTrace. Tu peux même ajouter d'autre méthodes qui vont te permettre de sauvegarder plusieurs stackTrace ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class TraceOutPutStream implements OutputStream{
     
         private List traces = new ArrayList();     
         private StringBuffer currentTrace = new StringBuffer();
     
         public void newTrace(){
             this.traces.add(this.currentTrace.toString());
             this.currentTrace = new StringBuffer();
         }
     
         public List getTraces(){
               return this.traces;
         }
     
         public void write(byte[], int off, int len){
             this.currentTrace.append(new String(b, off, len));
         }
     
         public void write(byte[] b){
               this.write(b, 0, b.length);
         }
     
         public void write(byte b){
              this.write(new byte[]{b}, 0, 1);
         }
     
    }

    Bon tout le code n'est pas là et je n'ai pas tester, mais un truc du genre devrait résourdre ton problème
    bonne journée

    [EDIT]
    Ha bon ben j'avais pas vu la réponse de Bulbo qui est quand même plus simple c'est pas mal ces StringWriter dis-donc !

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci pour toutes les infos, le StringWriter convient parfaitement à mes
    attentes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/12/2009, 03h14
  2. IBM Rational ClearQuest en version 7.1, une solution SCM avancée
    Par Marc Lussac dans le forum Actualités
    Réponses: 0
    Dernier message: 16/12/2009, 03h14
  3. Récupérer la trace d'une exception
    Par papyreno dans le forum Langage
    Réponses: 5
    Dernier message: 26/08/2008, 16h52
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo