1、pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
2、异常处理工具类
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.ArrayUtils;
/**
* 异常处理工具类
*/
public class HandleExceptionUtils {
private HandleExceptionUtils(){}
/**
* 异常处理方法
*
* @param throwable 异常
* @return 异常信息
*/
public static String handleException(Throwable throwable) {
JSONObject errorJson = new JSONObject();
StackTraceElement[] stackTraceArray = throwable.getStackTrace();
errorJson.put("exceptionType", throwable.getClass().getName());
errorJson.put("exceptionMessage", throwable.getLocalizedMessage());
if (ArrayUtils.isNotEmpty(stackTraceArray)) {
int maxSize = Math.min(stackTraceArray.length, 20);
JSONArray array = new JSONArray();
for (int i = 0; i < maxSize; i++) {
StackTraceElement stackTraceElement = stackTraceArray[i];
JSONObject json = new JSONObject();
json.put("className" , stackTraceElement.getClassName());
json.put("methodName", stackTraceElement.getMethodName());
json.put("lineNumber", stackTraceElement.getLineNumber());
array.add(json);
}
errorJson.put("stackTrace", array);
}
return errorJson.toJSONString();
}
}