您的位置:首页 > 其它

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

2014-03-23 14:56 316 查看
记录一下。

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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: