Javaアプリケーションで例外を検出するときにスタックトレースを記録する必要があります。私は例外がprintStackTrace()
メソッドに組み込まれていて、スタックトレースを別のPrintWriter/PrintStreamに送ることができることを知っていますが、スタックトレースをStringとして取得して操作できるようにすると便利ですJMessagePaneなどで現在、これを行う唯一の方法は次のとおりです。Javaはスタックトレースを別の出力ストリームに送信します
String stackTrace = "";
stackTrace += e.getClass().getName() + ": " + e.getMessage() + "\n";
for (StackTraceElement elt : e.getStackTrace()) {
stackTrace += "\tat " + elt + "\n";
}
これを行うにはもっとクリーンな方法がありますか?
「printStackTrace」メソッドは、質問本体で提案されている他の方法よりもはるかに優れていることに気づくはずです。つまり、もしそれが設定されていれば、原因のためのスタックトレースを含み、元の例外に共通の原因から 'StackTraceElement'を除外します。したがって、 '... more'というフレーズ –
が優勢です。それが私がよりエレガントなやり方をしたいもう一つの理由です。 – ewok