私は次のコードを持っています:
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"
}
}
私が見たい出力は、行番号と失敗したクラスの階層を含む完全なスタックトレースです。例えば、
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)
このコードは、log4jもあるより大きなアプリ内で実行されていますが、Java開発者に電子メールとして送信できるように、例外を文字列に取り込むことができることを望んでいます。
スタックトレース全体を文字列にキャプチャする方法について誰かがアイデアを持っていますか?このアプリはJava4で実行されるため、Thread.currentThread()。getStackTrace()を使用できません。上記のコードが完全なスタックトレースを出力するのを妨げているのは何ですか?