Я думаю, что можно получить то же самое с:
StackTraceElement[] cause = Thread.currentThread().getStackTrace();
Ну, можно улучшить его немного путем не на самом деле выдачи исключения.
Exception ex = new Exception();
ex.fillInStackTrace();
StackTraceElement[] cause = ex.getStackTrace();
На самом деле я просто проверил: вызовы конструктора fillInStackTrace()
уже. Таким образом, можно упростить его до:
StackTraceElement[] cause = new Exception().getStackTrace();
Это на самом деле что Thread.getStackTrace()
делает, если это обратилось к текущему потоку, таким образом, Вы могли бы предпочесть использовать его вместо этого.