Что такое Thread.currentThread().getStackTrace();?

Рейтинг: -1Ответов: 1Опубликовано: 20.11.2014

Что означает эта строка?

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

Что такое стек, я понял. Интересует, почему мы список стеков берем из Thread.currentThread().getStackTrace();

Ответы

▲ 5

Эта "Thread.getStackTrace()" строчка вызывает метод, который возвращает массив отслеживаемых элементов, которые представлены в текущем потоке. Вернет массив 0 длины, если поток не запущен или был завершен.

На верхушке будет последний из вызванных методов, в самом последнем элементе массива будет недавно запущенный метод внутри потока.

В случае ошибки обычно вызывается getStackTrace(), чтобы быстрее поймать баг и проследить последовательность вызова методов внутри потока. Да, к справке, его надо просматривать снизу вверх, для определения баг или чего бы то ни было. :)

Ваш вопрос "почему": так задумано, чтобы данный метод выводил массив последовательности вызова других методов.