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

来源:互联网 发布:开店记账软件 编辑:程序博客网 时间:2024/05/21 09:19

记录一下。

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 0
原创粉丝点击