因项目需要将异常信息保存下来提供前台查看,而Runtime异常(如空指针异常)发生时JVM调用的是父类无参的构造器,getMessage为null,但栈打印的异常信息是有的,故此处添加获取栈打印的异常信息,用getBuffer获取并转为字符串保存。
在这里插入代码片
``catch (Exception e) {
String errMessage = e.getMessage();
if(StringUtils.isNotBlank(errMessage )) {
StringWriter stringWriter= new StringWriter();
PrintWriter writer= new PrintWriter(stringWriter);
e.printStackTrace(writer);
StringBuffer stringBuffer = stringWriter.getBuffer();
errMessage = stringBuffer.toString();
}
}
//可封装下代码。 异常信息是比较长的,我这数据库字段使用大字段保存,也可自己截取一部分异常内容保存