JVMを介してスタックトレースをダンプする方法
Java仮想マシン(JVM)は、スタックトレース情報を2つの方法で出力します。ThrowableクラスのprintStackTraceメソッドと、ThreadクラスのgetStackTraceメソッドを使用します。
- ThrowableクラスでprintStackTrace()メソッドを使う
try {
// 代码块
} catch (Throwable throwable) {
throwable.printStackTrace();
}
スタック情報を直接コンソールに出力する形式です。
- ThreadクラスのgetStackTrace()メソッドを使用します。
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement stackTraceElement : stackTraceElements) {
System.out.println(stackTraceElement.toString());
}
この方法では、スタック情報が再帰的にプリントアウトされます。
これら2つのメソッドではコンソールへのスタックトレース出力だけに留まり、ファイルに保存したり他の処理をしたい場合は、関連したIO操作を使う必要があります。