Exception Java Stacktrace Pas L'Impression

J'ai le code suivant:

import org.apache.commons.lang.exception.ExceptionUtils;
public void myMethod() {
    try {
        //do something
    } catch (Exception e) {
        System.out.println(ExceptionUtils.getStackTrace(e)); //prints "java.lang.NullPointerException"
        System.out.println(ExceptionUtils.getFullStackTrace(e)); //prints "java.lang.NullPointerException"
        e.printStackTrace(); //prints "java.lang.NullPointerException"
    }
}

Le résultat que j'aimerais voir, c'est plein stacktrace avec les numéros de ligne et la hiérarchie des classes qui a échoué. Par exemple,

Exception in thread "main" java.lang.NullPointerException
        at org.Test.myMethod(Test.java:674)
        at org.TestRunner.anotherMethod(TestRunner.java:505)
        at java.util.ArrayList(ArrayList.java:405)

Ce code est exécuté à l'intérieur d'une plus grande application qui a également log4j, mais j'espère être en mesure d'obtenir l'exception dans une chaîne de caractères afin que je puisse l'envoyer sous forme de courriel pour les développeurs java.

Quelqu'un a une idée sur comment je peux capturer la trace de la pile d'une chaîne de caractères? Je ne peux pas utiliser Thread.currentThread().getStackTrace() depuis cette application fonctionne sur Java 4. Ce qui pourrait bloquer le code ci-dessus à partir de l'impression de la pleine stacktrace?

Ressemble à la StackTraceElement tableau à entrées en phase nationale est en cours de réinitialisation à vide. Est rien d'appel setStackTrace sur le NPE?
Non, rien ne doit être l'appel de setStackTrace.
Êtes-vous en mesure de débogage dans un IDE? Pourrait être utile de définir un point d'arrêt dans le bloc catch pour voir si l'Exception est "parfaitement formé".
ajouter le connecté la sortie de votre myMethod() ou de votre méthode. e.printStackTrace(); normalement devrait imprimer le remplissage de trace.

OriginalL'auteur David | 2012-09-11