Vì mục đích chẩn đoán, đôi khi tôi cần lưu trữ ngăn xếp cuộc gọi dẫn đến chuyển đổi trạng thái đã cho (chẳng hạn như cấp khóa, cam kết giao dịch, v.v.) sau đó tôi có thể tìm ra ai ban đầu đã kích hoạt quá trình chuyển đổi trạng thái.Xác định ngăn xếp cuộc gọi hiện tại (Đối với mục đích chẩn đoán)
Hiện nay, cách duy nhất tôi biết để lấy các cuộc gọi stack trông giống như đoạn mã sau đây, mà tôi xem xét khủng khiếp xấu xí:
StackTraceElement[] cause;
try {
throw new Exception();
} catch (Exception e) {
cause = e.getStackTrace();
}
Có ai đó biết một cách tốt hơn để thực hiện điều này?
Không cần cho 'fillInStackTrace' (mặc dù nó rất dễ dàng để đọc tài liệu API của nó về phía sau). –