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,让他写在日志中了。