终于知道Java异常栈经常有"....123more"的原因了
终于知道Java异常栈经常有"....123more"的原因了
何金池 发表于4年前
终于知道Java异常栈经常有"....123more"的原因了
  • 发表于 4年前
  • 阅读 137
  • 收藏 4
  • 点赞 1
  • 评论 0
摘要: java.lang.Throwable.printStackTraceAsCause(PrintStream s, StackTraceElement[] causedTrace)

/**

     * Print our stack trace as a cause for the specified stack trace.

     */

    private void printStackTraceAsCause(PrintStream s,

                                        StackTraceElement[] causedTrace)

    {

        // assert Thread.holdsLock(s);


        // Compute number of frames in common between this and caused

        StackTraceElement[] trace = getOurStackTrace();

        int m = trace.length-1, n = causedTrace.length-1;

        while (m >= 0 && n >=0 && trace[m].equals(causedTrace[n])) {

            m--; n--;

        }

        int framesInCommon = trace.length - 1 - m;


        s.println("Caused by: " + this);

        for (int i=0; i <= m; i++)

            s.println("\tat " + trace[i]);

        if (framesInCommon != 0)

            s.println("\t... " + framesInCommon + " more");


        // Recurse if we have a cause

        Throwable ourCause = getCause();

        if (ourCause != null)

            ourCause.printStackTraceAsCause(s, trace);

    }


共有 人打赏支持
粉丝 14
博文 39
码字总数 7103
×
何金池
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: