package com.java110.utils.util;
|
|
import java.io.PrintWriter;
|
import java.io.StringWriter;
|
import java.lang.reflect.Field;
|
|
/**
|
* 异常工具类
|
*/
|
public class ExceptionUtil {
|
|
public static String getStackTrace(Throwable throwable) {
|
StringWriter sw = new StringWriter();
|
PrintWriter pw = new PrintWriter(sw);
|
|
try {
|
throwable.printStackTrace(pw);
|
|
Field detailMessageField = Throwable.class.getDeclaredField("detailMessage");
|
|
// 2. 设置字段可访问(突破私有访问限制)
|
detailMessageField.setAccessible(true);
|
|
// 3. 获取字段值(即异常的详细消息)
|
String detailMessage = (String) detailMessageField.get(throwable);
|
|
return detailMessage;
|
} catch (NoSuchFieldException e) {
|
throw new RuntimeException(e);
|
} catch (IllegalAccessException e) {
|
throw new RuntimeException(e);
|
} finally {
|
pw.close();
|
}
|
}
|
}
|