将printStackTrace()的信息以字符串形式保存

记录一下。

Exception的printStackTrace来自于Tthrowable,android下只支持两种方式

printStackTrace(PrintStream err)

 printStackTrace(PrintWriter err)

所以没法直接把StringWriter作为参数传递给printStackTrace()获取stackTrace的字串。

通过查找code发现,java.io.StringWriter和java.io.PrintWriter均继承自java.io.Writer;

其中PrintWriter提供以Writer接口作为输入参数的构造函数PrintWriter(Writer wr)

所以可以通过使用StringWriter构造PrintWriter,然后借这个壳去给printStackTrace,就能把stackTrace以字串形式抓出来了。

smaple如下:

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
Exception fe = new Exception();
fe. printStackTrace(pw);
log(sw.toString());

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值