與 AI 互動 - 學習如何看呼叫鏈堆疊資訊

Fun_Fox發表於2024-10-24

目的

收集不同結構呼叫鏈,對應的堆疊結構資訊,熟悉堆疊結構與程式邏輯的對應關係。

避免當看到後臺系統一堆報錯堆疊資訊後,無從下手的情況。

互動記錄

💡 淺顯的認為,在向 AI 提問題前,是處於 2 種求知的狀態:

-- 一無所知,沒有方向

-- 有一些淺顯的瞭解,可以從一些簡單的方向,順藤摸瓜

基於與 Cursor Claude-3.5-sonnet-20241022 模型多輪對話:

HumanMessage 代表本人的問題

AIMessage 代表 AI 的回答(摘取關鍵的部分)

HumanMessage-1

給出示例並列印 for 迴圈語句呼叫鏈 堆疊資訊 與 if 迴圈語句呼叫鏈 堆疊資訊

AIMessage-1

public class StackTraceDemo {
    public void forLoopMethod() {
        for(int i = 0; i < 2; i++) {
            System.out.println("\n第" + (i+1) + "次迴圈的堆疊資訊:");
            methodA();
        }
    }

    public void ifMethod() {
        if(true) {
            methodB();
        }
    }

    private void methodA() {
        // 獲取當前堆疊資訊
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
        printStackTrace(stackTrace);
    }

    private void methodB() {
        // 獲取當前堆疊資訊
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
        printStackTrace(stackTrace);
    }

    private void printStackTrace(StackTraceElement[] stackTrace) {
        for(int i = 0; i < stackTrace.length; i++) {
            System.out.println("\t" + stackTrace[i]);
        }
    }

    public static void main(String[] args) {
        StackTraceDemo demo = new StackTraceDemo();
        System.out.println("===== For迴圈堆疊資訊 =====");
        demo.forLoopMethod();

        System.out.println("\n===== If語句堆疊資訊 =====");
        demo.ifMethod();
    }
}

程式碼真實執行結果

HumanMessage-2

以 markdown 圖形化展示呼叫鏈

AIMessage-2

For 呼叫鏈

IF 呼叫鏈

持續學習

使用(結果 + 視覺化圖形)的方式,學會與 AI 進行溝通,持續學習,汲取更多知識




最後

不用再透過傳統搜尋的學習,效率更高,各位還有什麼透過與 AI 互動後,學習到的新知識呢?

相關文章