#java #eclipse #stack-trace
#java #eclipse #трассировка стека
Вопрос:
Иногда у меня есть длинная цепочка (вызванная x, вызванная y) в трассировке стека, которая резко обрывается, прежде чем перейти к тому, что, как я подозреваю, является хорошей частью. Хорошая часть — это код, который я написал и над которым имею контроль, а не различный усовершенствованный сторонний код, который я использую (сервер, JSP и т.д.), Который, вероятно, не содержит ошибки. Трассировка стека завершится чем-то вроде:
…. и еще 70.
Что я могу сделать в этой ситуации? Есть ли способ сообщить Java, чтобы она предоставляла более полную трассировку стека?
Я работаю в Eclipse.
Комментарии:
1. Я обновил свой ответ примером на случай, если вы пропустили это.
Ответ №1:
Этого не происходит, но подсказка в том, что stacktrace все еще там.
Этот ... 70 more.
материал является сокращением от: «… и отсюда это то же самое, что и то, причиной чего я являюсь «.
Итак, просто прокрутите вверх одно исключение и посмотрите на нижние 70 строк этого. (и, возможно, это 20 строк stacktrace, а затем ‘… и еще 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
Вы можете вычислить правильный stacktrace вручную, потому что пример настолько прост. Еще 2? Они:
at Example.foo(Example.java:7)
at Example.main(Example.java:3)
— те же 2 строки, на которые заканчивается то, что было причиной ‘Cause’ (‘Actual’).