思路:
java中打印异常信息的方法为e.printStackTrace(),但无法获取字符串信息,所以采用数据流的方式获取异常的信息,并加以进一步处理
解决方式:
try {
int a = 1;
int b = 0;
int c = a / b;
} catch (Exception e) {
ExceptionHelpUtil.addExceptionMessage(e); // 在异常处理的catch块中,调用封装的方法即可
}
/**
* 异常信息辅助收集的工具类
*/
public class ExceptionHelpUtil {
// 处理异常信息
public static void addExceptionMessage(Exception e) {
if (e == null) {
return;
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
addExceptionMessageOffline(baos.toString());
}
// 将异常信息String进一步处理
public static void addExceptionMessageOffline(String exceptionMessage) {
if (TextUtils.isEmpty(exceptionMessage)) {
return;
}
// exceptionMessage为处理后的异常的堆栈信息,可以进一步处理,采用回传至服务器等方式,在此不再赘述
}
}