Java将Stack trace发送到不同的输出流

前端之家收集整理的这篇文章主要介绍了Java将Stack trace发送到不同的输出流前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在 Java应用程序中捕获异常时,我需要记录堆栈跟踪.我知道异常有一个内置的printStackTrace()方法,并且可以将堆栈跟踪发送到不同的PrintWriter / PrintStream,但是如果我可以将堆栈跟踪作为String抓取,以便我可以操作它或者在JMessagePane中显示它.目前,我唯一要做的就是:
String stackTrace = "";
stackTrace += e.getClass().getName() + ": " + e.getMessage() + "\n";

for (StackTraceElement elt : e.getStackTrace()) {
    stackTrace += "\tat " + elt + "\n";
}

有没有更清洁的方法来做到这一点?

解决方法

有:
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));
String stackTrace = writer.toString();

猜你在找的Java相关文章