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(); } } }