Do celów diagnostycznych czasami potrzebuję przechowywać stos wywołujący, który prowadzi do danego przejścia stanu (na przykład przyznanie blokady, zatwierdzenie transakcji itp.), Aby coś poszło nie tak później mogę dowiedzieć się, kto pierwotnie spowodował zmianę stanu.Określanie aktualnego stosu wywołań (do celów diagnostycznych)
Obecnie jedynym sposobem mam świadomość odzyskać stosu wywołań wygląda poniższym fragmencie kodu, który uważam za strasznie brzydka:
StackTraceElement[] cause;
try {
throw new Exception();
} catch (Exception e) {
cause = e.getStackTrace();
}
Czy ktoś wie o lepszy sposób, aby osiągnąć ten cel?
Nie potrzeba 'fillInStackTrace' (chociaż nie jest łatwo czytać jego dokumenty API w tył). –