如何解决Java Stacktrace中断太早了
有时候,我在堆栈跟踪中有一条长链(由x引起,由y引起),在到达我怀疑是好的部分之前突然中断。好的部分是我编写的并且可以控制的代码,而不是我使用的各种精致的第三方代码(服务器,JSP等),其中可能不包含错误。堆栈跟踪将以类似以下内容结尾:
...以及另外70个。
在这种情况下我该怎么办?有没有办法告诉Java共享更完整的堆栈跟踪?
我正在Eclipse中工作。
解决方法
没有,但线索是,堆栈跟踪仍然存在。
... 70 more.
的缩写是:“ ...从这里开始,它与我所要的原因相同。”
因此,只需向上滚动一个例外,然后查看该例外的底部70行。 (也许那是20条堆栈跟踪行,然后是“ ...和另外50条”,在这种情况下,请重复应用此原理。)
简单测试:
class Example {
public static void main(String[] args) {
foo();
}
static void foo() {
bar();
}
static void bar() {
try {
throw new RuntimeException("Cause");
} catch (Exception e) {
throw new RuntimeException("Actual",e);
}
}
}
此打印:
Exception in thread "main" java.lang.RuntimeException: Actual
at Example.bar(Example.java:14)
at Example.foo(Example.java:7)
at Example.main(Example.java:3)
Caused by: java.lang.RuntimeException: Cause
at Example.bar(Example.java:12)
... 2 more
由于示例非常简单,因此您可以手动计算适当的堆栈跟踪。还有2个?他们是:
at Example.foo(Example.java:7)
at Example.main(Example.java:3)
-与“原因”是导致“(实际)”的原因相同的两行内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。