Android 怎么把异常的StackTrace信息格式化为String


在Android开发中,常常需要把异常信息的StackTrace转化成String写入日志文件中。 最初,我使用getStackTrace().toString() 这样的代码,后来发现这样无法获取全部信息,怎么办呢,经过查阅资料,写出了下面的函数:

  1. public static String FormatStackTrace(Throwable throwable) {  
  2.     if(throwable==null) return "";  
  3.     String rtn = throwable.getStackTrace().toString();  
  4.     try {  
  5.         Writer writer = new StringWriter();  
  6.         PrintWriter printWriter = new PrintWriter(writer);  
  7.         throwable.printStackTrace(printWriter);       
  8.         printWriter.flush();  
  9.         writer.flush();  
  10.         rtn = writer.toString();  
  11.         printWriter.close();              
  12.         writer.close();  
  13.     } catch (IOException e) {  
  14.         e.printStackTrace();  
  15.     } catch (Exception ex) {  
  16.     }  
  17.     return rtn;  
  18. }  

由于Exception继承与Throwable,因此,可以直接给该方法传递Exception的对象。

主要适用的类:java.io.Writer 和java.io.StringWriter

java.lang.Exception

 

相关内容