出于诊断目的,我有时需要存储导致给定状态转换的调用堆栈(例如授予锁定,提交事务等),以便稍后出现问题时我可以找出最初触发状态转换的人.
目前,我知道检索调用堆栈的唯一方法看起来像下面的代码片段,我认为非常难看:
StackTraceElement[] cause;
try {
throw new Exception();
} catch (Exception e) {
cause = e.getStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
有人知道更好的方法吗?