第一种方式:
public String getStackTraceStr(Exception e) {
ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();
e.printStackTrace(new PrintWriter(buf, true));
String exStr = buf.toString();
try {
buf.close();
} catch (IOException e1) {
e1.printStackTrace();
}
return exStr;
}
第一种方式用到了流,太占用内存资源。
第二种方式:
private static String getStackMsg(Exception e) {
StringBuffer sb = new StringBuffer();
StackTraceElement[] stackArray = e.getStackTrace();
for (int i = 0; i < stackArray.length; i++) {
StackTraceElement element = stackArray[i];
sb.append(element.toString() + "
");
}
return sb.toString();
}