当我在
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();