ExceptionUtils.getFullStackTrace

    xiaoxiao2025-07-28  10

    //打印全部异常堆栈 public class ExceptionUtils { public static void main(String[] args) { try { int a=1/0; } catch (Exception e) { e.printStackTrace(); String fullStackTrace = org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(e); System.out.println(fullStackTrace); } } } /** * <p>A way to get the entire nested stack-trace of an throwable.</p> * * <p>The result of this method is highly dependent on the JDK version * and whether the exceptions override printStackTrace or not.</p> * * @param throwable the <code>Throwable</code> to be examined * @return the nested stack trace, with the root cause first * @since 2.0 */ public static String getFullStackTrace(Throwable throwable) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw, true); Throwable[] ts = getThrowables(throwable); for (int i = 0; i < ts.length; i++) { ts[i].printStackTrace(pw); if (isNestedThrowable(ts[i])) { break; } } return sw.getBuffer().toString(); }

    另一种方式:

    public static String exception2String(Exception ex){ String exceptionMessage = ""; if (ex != null) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); try { ex.printStackTrace(pw); exceptionMessage = sw.toString(); } finally { try { sw.close(); pw.close(); } catch (Exception e) { } } } return exceptionMessage; }

    转载请注明原文地址: https://ju.6miu.com/read-1301154.html
    最新回复(0)