| | |
| | | |
| | | import java.io.PrintWriter; |
| | | import java.io.StringWriter; |
| | | import java.lang.reflect.Field; |
| | | |
| | | /** |
| | | * 异常工具类 |
| | |
| | | |
| | | try { |
| | | throwable.printStackTrace(pw); |
| | | return sw.toString(); |
| | | |
| | | 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(); |
| | | } |