回到顶部
您的当前位置: 编程语言> JAVA> JAVA基础> 基础语法
Java获取e.printStackTrace()的内容
2014-04-21 13:52:55
标签: 转载 Java e.printStackTrace 内容

e.printStackTrace()通常是打印在控制台的,但是,有时候程序上线了需要看这个堆栈的内容就不容易了,一来生产环境打印的东西很多或者很少,二来有时候无法直接查看到,这个时候就需要把这些内容记录下来,比如记录到数据库中,下面的方法可以完整记录。

public static void main(String[] args) {
    try {
        String aa = "";
        System.out.println(aa.substring(3));
    } catch (Exception e) {
        e.printStackTrace();
        StringWriter sw = new StringWriter();
        e.printStackTrace(new PrintWriter(sw, true));
        String str = sw.toString();
        System.out.println("==========");
        System.out.println(str);
    }
}

打印的效果如下:

java.lang.StringIndexOutOfBoundsException: String index out of range: -3
    at java.lang.String.substring(Unknown Source)
    at java.lang.String.substring(Unknown Source)
    at Getc.main(Getc.java:16)
==========
java.lang.StringIndexOutOfBoundsException: String index out of range: -3
    at java.lang.String.substring(Unknown Source)
    at java.lang.String.substring(Unknown Source)
    at Getc.main(Getc.java:16)