如何获取e.printStackTrace()的内容
如何获取e.printStackTrace()的内容
五大三粗 发表于3年前
如何获取e.printStackTrace()的内容
  • 发表于 3年前
  • 阅读 6723
  • 收藏 6
  • 点赞 3
  • 评论 0

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)  

共有 人打赏支持
粉丝 151
博文 890
码字总数 4479865
×
五大三粗
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: