gpt4 book ai didi

java - 如何增加 Java 堆栈跟踪转储的显示行数?

转载 作者:行者123 更新时间:2023-11-29 14:05:04 25 4
gpt4 key购买 nike

有没有办法让Throwable.printStackTrace(PrintStream s)打印完整的堆栈跟踪,这样我就可以看到 "... 40 more" 的最后一行?

最佳答案

你不需要;该信息存在于堆栈跟踪的其他地方。来自 printStackTrace() 的文档:

Note the presence of lines containing the characters "...". These lines indicate that the remainder of the stack trace for this exception matches the indicated number of frames from the bottom of the stack trace of the exception that was caused by this exception (the "enclosing" exception).

This shorthand can greatly reduce the length of the output in the common case where a wrapped exception is thrown from same method as the "causative exception" is caught.

换句话说,"... x more" 仅出现在链式异常中,并且仅当堆栈跟踪的最后 x 行已经存在时作为另一个链式异常的堆栈跟踪的一部分。

假设一个方法捕获了异常Foo,将其包装在异常Bar中,并抛出Bar。然后 Foo 的堆栈跟踪将被缩短。如果出于某种原因你想要完整的跟踪,你需要做的就是在 Foo 的堆栈跟踪中获取 ... 之前的最后一行,然后在 Bar 的堆栈跟踪中查找它;该行下方的所有内容正是 Foo 的堆栈跟踪中打印的内容。

关于java - 如何增加 Java 堆栈跟踪转储的显示行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com