В диагностических целях мне иногда приходится хранить стек вызовов, которые приводят к определенному переходу состояния (например, предоставление блокировки, совершение транзакции и т.д.), так что, когда что-то пойдет не так, я могу узнать, кто изначально вызвал переход состояния.
В настоящее время единственный способ получить стек вызовов выглядит следующим образом: фрагмент кода, который я считаю ужасно уродливым:
StackTraceElement[] cause;
try {
throw new Exception();
} catch (Exception e) {
cause = e.getStackTrace();
}
Знает ли кто-нибудь лучший способ достичь этого?