在Android开发中,常常需要把异常信息的StackTrace转化成String写入日志文件中。 最初,我使用getStackTrace().toString() 这样的代码,后来发现这样无法获取全部信息,怎么办呢,经过查阅资料,写出了下面的函数:
public static String FormatStackTrace(Throwable throwable) { if(throwable==null) return ""; String rtn = throwable.getStackTrace().toString(); try { Writer writer = new StringWriter(); PrintWriter printWriter = new PrintWriter(writer); throwable.printStackTrace(printWriter); printWriter.flush(); writer.flush(); rtn = writer.toString(); printWriter.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } catch (Exception ex) { } return rtn; }由于Exception继承与Throwable,因此,可以直接给该方法传递Exception的对象。
主要适用的类:java.io.Writer 和java.io.StringWriter
java.lang.Exception