在某些场景下,直接使用e.printStackTrace(); 或者使用log4j打印异常,在日志收集系统中不好检索。
下面方法将异常拼接成一行,使用 StackTraceElement。
package com.ajl.usage.exception;
/**
* @Author anjinlong
* @create 2020-10-02 17:05
* @description description
*/
public class ExceptionUsage {
public static void main(String[] args) {
errMsg();
}
public static void errMsg() {
String str = null;
try {
str.length();
} catch (Exception e) {
StringBuffer errmsg = new StringBuffer();
errmsg.append(e.getMessage()).append("\n");
StackTraceElement [] stackTraceElements = e.getStackTrace();
for(StackTraceElement stackTraceElement : stackTraceElements){
errmsg.append(stackTraceElement.toString()).append("\n");
}
System.out.println(errmsg);
}
}
}