加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:48:07 所属栏目:Java 来源:网络整理
导读:当我在 Java应用程序中捕获异常时,我需要记录堆栈跟踪.我知道异常有一个内置的printStackTrace()方法,并且可以将堆栈跟踪发送到不同的PrintWriter / PrintStream,但是如果我可以将堆栈跟踪作为String抓取,以便我可以操作它或者在JMessagePane中显示它.目前,
当我在 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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读