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