Определение текущего стека вызовов (для диагностических целей)

Использовать оператор удаления

delete item["1"];
45
задан Gray 29 January 2014 в 14:29
поделиться

2 ответа

Я думаю, что можно получить то же самое с:

StackTraceElement[] cause = Thread.currentThread().getStackTrace();
87
ответ дан bruno conde 26 November 2019 в 21:05
поделиться

Ну, можно улучшить его немного путем не на самом деле выдачи исключения.

Exception ex = new Exception();
ex.fillInStackTrace();
StackTraceElement[] cause = ex.getStackTrace();

На самом деле я просто проверил: вызовы конструктора fillInStackTrace() уже. Таким образом, можно упростить его до:

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

Это на самом деле что Thread.getStackTrace() делает, если это обратилось к текущему потоку, таким образом, Вы могли бы предпочесть использовать его вместо этого.

13
ответ дан Michael Myers 26 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: