Java获取到异常信息进行保存(非Copy)
吐槽:不知道从什么时候开始,各大博客网站的文章开始各种复制粘贴,想好好找一个解决方法,搜索出来的博客基本上千篇一律,主要是能解决问题也还行,还解决不了问题这就恶心了....
所以被迫自己写一篇文章,然后让有同样需求的童鞋找到正确的解决方式了。
首先说我们可能都会遇上这样的需求,进行try catch捕获到异常,然后将异常信息存储到到DB中,而jdk自带的e.printStackTrace();是直接将异常信息进行输出,没法进行保存。但是很友好得lang包出现了,提供了一个方法可以让我们捕获到异常信息。如下:
ExceptionUtils.getStackTrace(e)
该方法来自package org.apache.commons.lang3.exception;所以需要调用这个方法的童鞋需要用mvn引入对应的jar或者直接导入jar。
当然我们也可以不用导入jar包,直接将ExceptionUtils.getStackTrace(e);实现代码扒下来,引入自己的项目中。如下:
public static String getStackTrace(final Throwable throwable) {
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw, true);
throwable.printStackTrace(pw);
return sw.getBuffer().toString();
}
该方法的返回值是一个String,所以我们直接调用这个方法然后进行存储就ok了!!!