Вывод stacktrace от Exception и Thread

111
13 апреля 2021, 14:40

Недавно обнаружил, что stacktrace, вызываемый у Exception на один метод короче, чем stacktrace вызываемый у Thread. Почему то Exception не добавляет в конец stacktrace сам метод getStackTrace(). Кто-нибудь может объяснить почему так происходит?

StackTraceElement[] stackTraceElements = new Exception().getStackTrace();

StackTraceElement [] elements = Thread.currentThread().getStackTrace();
Answer 1
StackTraceElement[] stackTraceElements = new Exception().getStackTrace();

Это в мейн треде вызывается

StackTraceElement [] elements = Thread.currentThread().getStackTrace();

Это в другом треде. В стектрейсе дополнительно указывает информацию, что это за тред. Отсюда и дополнительный элемент в массиве

READ ALSO
Где хранить данные о покупках

Где хранить данные о покупках

Как оптимальнее организовать хранение данных о покупке, например, пользователь купил 2 едтовара

115
Как сравнить 2 объекта

Как сравнить 2 объекта

Как без лапша-кода сравнить 2 объекта?

104
Маска номера +7 в джаваскрипт

Маска номера +7 в джаваскрипт

Есть поле ввода номера телефона

82