java中把错误信息以字符串的形式返回
?
前几天,出差去现场开发,开发完成之后,发现一些try catch语句里为了一时方便,就直接在catch里写了e.printStackTrace();方法。这样肯定是不行的,一定要把错误信息输出到日志里去,这样以后检查一起来很方便。于是配置了一下log4j的配置,让其把信息输出到日志,那么现在的问题就是怎么把错误信息以字符串的形式传给logger呢。于是写了下面这段代码。
?
public class ExceInfoUtil { //获取错误信息字符串,以便在日志中记录 public static String getExceptionInfo(Exception e){ StringBuffer info =new StringBuffer("\n"+e.toString()+"\n"); StackTraceElement[] elements=e.getStackTrace(); for(StackTraceElement element:elements){ info.append("\t\t"+element.toString()+"\n"); } return info.toString(); } public static void main(String[] args) { String str=null; try { char c=str.charAt(0); } catch (Exception e) { String info = ExceInfoUtil.getExceptionInfo(e); System.out.println(info); } }}
main方法用于测试。
这样就可以把该类的方法返回的字符串给logger,让他写在日志中了。