1. 程式人生 > >除錯獲取方法呼叫堆疊資訊

除錯獲取方法呼叫堆疊資訊

有些時候或者為了除錯程式或者為了列印資訊,我們需要在程式執行期間獲取程式排程堆疊的資訊,java在執行期間可以通過throwable類來獲取方法呼叫堆疊資訊。

例如哪個方法呼叫的當前方法,當前執行類的類名,檔名,程式碼行等等。

    public void test() {
        Throwable ex = new Throwable();
        StackTraceElement[] stackElements = ex.getStackTrace();
        if (stackElements != null) {
            for (int i = 0; i < stackElements.length; i++) {
                System.out.println(stackElements[i].getClassName() +
                        "." + stackElements[i].getMethodName() +
                        "(" + stackElements[i].getFileName() +
                        ":" + stackElements[i].getLineNumber() + ")");
            }
        }
    }

也可以在除錯時,執行到目標方法時在監視視窗 new Throwable().getStackTrace() ,也能獲取到當前方法呼叫的堆疊資訊。