第 7 章 當程式出錯——用 AI 修復 AI 的錯誤 - 零基礎學 Vibe Coding讀者專區 跳至主要內容

《零基礎學 Vibe Coding》讀者專區

第 7 章 當程式出錯——用 AI 修復 AI 的錯誤

錯誤訊息是你的朋友,修 Bug 的正確對話方式

提示詞範本(10 則)

把方括號〔〕裡的內容換成你自己的情況,整段複製貼給 AI 就能用。

類別六、除錯與求救

51. 把錯誤原文原封不動貼給 AI

什麼時候用程式跑出一段紅色錯誤訊息,你想請 AI 幫你看。

我的程式出現了錯誤,以下是完整的錯誤訊息,我原封不動貼給你:  〔把整段錯誤訊息貼上,不要只貼一句,前後都要〕  我當時正在做的事情是:〔例如:點下「送出」按鈕的時候〕。請幫我看這個錯誤是什麼意思、可能是什麼原因造成的、以及該怎麼修。

別只複製一句紅字,也別自己轉述。錯誤訊息像病歷,完整貼上最有用。很多關鍵線索都藏在你覺得看起來不重要的那幾行裡。

52. 用「預期 vs 實際」描述問題

什麼時候用程式沒報錯,但行為不對,跟你想的不一樣。

我遇到一個問題,程式沒有跳錯誤,但行為不對。  我預期:〔點下按鈕後,應該跳出成功訊息〕。  實際發生:〔點下按鈕後,什麼都沒發生〕。  重現步驟:〔1. 打開頁面 2. 填好表單 3. 點送出〕。  請幫我分析為什麼會這樣,該從哪裡開始查。

「預期 vs 實際 vs 重現步驟」是求救的黃金公式。沒報錯的問題最難講,用這三格把它框起來,AI 就抓得到方向。

53. 請 AI 幫我重現問題

什麼時候用問題只是偶爾發生、或你不確定什麼情況下會出錯。

我這個功能〔描述功能〕有時候會出錯、有時候正常,我抓不到規律。請幫我想想:在什麼情況下最可能出這個問題?請列出幾個可能觸發問題的情境,並告訴我每一個該怎麼實際操作去測試,好讓我穩定地重現這個 bug,才能對症下藥。

抓不到規律的 bug 最惱人。與其瞎試,不如請 AI 幫你列出可疑情境,然後逐一測試。只要能穩定重現,問題就解決一半了。

54. 用二分法縮小問題範圍

什麼時候用一大段程式或一整個流程出錯,你不知道是哪一段的問題。

我這個〔功能或流程〕出錯了,但它牽涉的環節很多,我不知道問題出在哪一段。請教我用二分法縮小範圍:怎麼把整個流程切成前後兩半、分別怎麼確認哪一半是好的、哪一半有問題,然後再把有問題的那半繼續切。請一步一步帶我找出真正出錯的那個點。

二分法就像玩猜數字:每次砍一半,很快就逼近答案。與其從頭到尾一行行看,不如先確認問題在前半還後半,效率高得多。

55. 處理改了 A 卻壞了 B 的回歸

什麼時候用你明明是去修某個地方,結果別的、本來好好的功能反而壞了。

我剛才為了〔目的,例如:修正報名表單的驗證〕改了〔改動內容〕,結果原本正常的〔另一個功能,例如:登入功能〕反而壞了。我改動前它是好的。請幫我分析:我的改動為什麼會連累到這個看似無關的功能?它們之間可能有什麼隱藏的關聯?該怎麼修才不會又弄壞別的地方。

這種按下葫蘆浮起瓢的狀況,叫回歸(regression)。關鍵線索是改之前是好的,一定要講給 AI 聽,它才會往你剛才的改動這個方向查。

56. 應對 AI 說修好了但其實沒好

什麼時候用AI 信誓旦旦說改好了,你一測還是一樣壞。

你上一步說已經修好了,但我實際測試,問題完全沒有改善,狀況跟之前一模一樣:〔描述現在的實際情形,或貼上一樣的錯誤〕。請不要再假設上次的修法是對的。我們重新開始:請先跟我確認你認為問題的根本原因是什麼,我們對齊了原因,再決定怎麼修。

AI 會有過度自信的時候。這時別讓它在錯的方向上繼續修正,直接喊停、要求它重講一次你認為的根本原因,逼它回到診斷。

57. 卡住了,請 AI 換一個方向

什麼時候用同一個方法試了好幾次都修不好,你陷在死胡同裡。

這個問題我們已經用〔目前的方法〕試了好幾次都沒成功:〔簡述試過什麼、結果如何〕。我不想再往同一個方向鑽了。請你先退一步,用全新的角度重新思考這個問題,提出 2 到 3 個跟剛才完全不同的解法或思路讓我選,並說明各自的優缺點。

一個方法試三次沒好,就別再試第四次了。明確告訴 AI 換個完全不同的方向,並附上你試過什麼,避免它又繞回原路。

58. 請 AI 白話翻譯這個錯誤在講什麼

什麼時候用你看到一串英文錯誤或術語,完全看不懂它在說什麼。

我看到這個訊息完全看不懂:〔貼上錯誤訊息或那段看不懂的術語〕。請你當我的翻譯,用講給一個完全不懂程式的朋友聽的方式,白話解釋這句話到底在講什麼、它在抱怨什麼、大方向上通常跟什麼有關。我先求聽懂它在說什麼,還不急著修。

看懂錯誤訊息在講什麼,你就從怕它變成懂它。多用這招當翻譯機,久而久之你會發現常見的錯誤就那幾種。

59. 請 AI 加上防護與錯誤處理

什麼時候用程式在遇到意外狀況時就整個崩掉,你想讓它更耐操、不要動不動就掛。

我的〔某個功能〕遇到意外狀況(例如網路斷線、使用者輸入怪東西、外部服務沒回應)時就整個當掉。請幫我加上防護和錯誤處理:讓程式在出狀況時不要崩潰,而是優雅地擋下來、給使用者一句友善的提示、必要時記錄下來方便我查。請告訴我你補了哪些防護、還有哪些狀況值得防。

好的程式不是不會出錯,而是出錯時不會爆炸。主動請 AI 想還有哪些狀況值得提防,它常能點出你沒想到的意外。

60. 請 AI 列出所有可能原因再逐一排除

什麼時候用問題原因不明,你想有系統地排查,而不是東試一個西試一個。

我遇到這個問題:〔描述問題,附上預期 vs 實際〕。我不想亂猜亂試。請先幫我列出所有可能造成這個問題的原因,從最常見、最可能的排到最少見的。然後針對每一個原因,告訴我該怎麼快速確認是不是它?我們一個一個排除,找到真正的兇手。

這是專業工程師的除錯心法:先列清單、依可能性排序、逐一驗證。比起靈光一閃亂試,這種系統性排查的方式,慢慢來反而最快。AI 幫你寫出來的程式,你不見得看得懂,這很正常。但如果你連它做了什麼都不知道,就等於把方向盤完全交出去,出事只能乾瞪眼。這一類的提示詞不是要你變成工程師,而是讓 AI 一邊做、一邊當你的家教,把每一段程式翻成你聽得懂的話,你才有底氣做決定。

錯誤急救(23 條)

找不到一模一樣的沒關係,抓錯誤訊息的關鍵字對大方向就行。 完整清單與萬能救援句在卡關 FAQ。

一、環境與安裝類

command not found: node 或 command not found: npm

你會在哪看到在終端機(Terminal)輸入 `node -v` 或 `npm` 想確認有沒有裝好時跳出來。

白話意思電腦說「我不認識 node/npm 這個指令」,通常是還沒安裝,或裝了但電腦找不到它放在哪。

  • 根本還沒安裝 Node.js。
  • 裝完之後沒有重開終端機,新指令還沒生效。
  • 安裝路徑沒有被加進 PATH(電腦的「搜尋清單」)。
我在〔Mac/Windows〕上輸入 `node -v`,跳出 `command not found: node`。我是零基礎,請一步一步帶我確認 Node.js 有沒有裝、要怎麼裝,裝完要不要重開終端機。每一步請告訴我要在哪裡打字、打什麼。

裝完任何新工具,先把終端機完全關掉再重開一次,很多「找不到指令」其實只是舊視窗還沒更新。

command not found: python 或 python: command not found

你會在哪看到想跑 Python 程式、輸入 `python` 時出現。

白話意思電腦找不到 Python,或你打的名字跟它實際的名字不一樣。

  • 尚未安裝 Python。
  • 新版系統要用 `python3` 而不是 `python`。
  • 安裝了但沒加進 PATH。
我輸入 `python` 出現 `command not found`,但我記得好像有裝過。請幫我判斷是不是要改打 `python3`,還有怎麼確認到底裝了沒。我用的是〔Mac/Windows〕。

先試著把 `python` 改成 `python3` 再跑一次,這是最常見的解法。

The engine "node" is incompatible 或 requires Node version >=18

你會在哪看到安裝套件或啟動專案時,提示你的 Node 版本太舊或不符。

白話意思這個專案挑食,它要吃比較新(或特定)版本的 Node,你現在這版它不收。

  • Node 版本太舊,專案要求更新。
  • 同時裝了好幾個版本,現在生效的是舊的那個。
我啟動專案時出現 `requires Node version >=18`,但我不知道我現在是哪一版、也不知道怎麼換。請先教我怎麼查目前版本,再一步步帶我升級或切換到它要的版本。我用〔Mac/Windows〕。

把整段版本需求連同你 `node -v` 查到的數字一起貼給 AI,它就能直接告訴你差多少、怎麼補。

permission denied 或 EACCES: permission denied

你會在哪看到安裝套件、或執行某個指令、寫入某個資料夾時被擋下。

白話意思電腦說「這個動作你沒有權限做」,像是想進一個上鎖的房間。

  • 想寫入的是系統保護的資料夾。
  • 用了需要管理員權限的安裝方式。
  • 檔案的擁有者不是你目前的帳號。
我在做〔說明你剛剛在做什麼,例如 npm 全域安裝〕時出現 `permission denied`。請先告訴我這通常代表什麼、有沒有「不用硬加權限」的安全做法,再帶我操作。我不希望亂用 sudo 把系統弄壞,請提醒我風險。

看到權限錯誤,先別急著在指令前面加 `sudo`。很多情況有更安全的作法,先問 AI 有沒有替代方案。

'xxx' is not recognized as an internal or external command(Windows)

你會在哪看到在 Windows 的命令提示字元輸入某個指令時,整句話這樣回你。

白話意思這是 Windows 版的「找不到指令」,意思跟 Mac 的 `command not found` 一樣。

  • 程式沒裝,或裝了沒加進系統 PATH。
  • 需要重開命令提示字元或重開機。
我在 Windows 輸入 `〔你打的指令〕`,出現 `is not recognized as an internal or external command`。請一步步帶我確認這個程式有沒有裝、怎麼把它加進 PATH,最後要不要重開機。

Windows 改完 PATH 之後,記得把命令提示字元整個關掉重開,不然新設定不會生效。

command not found(明明剛裝好卻找不到)

你會在哪看到你才剛用套件管理器裝好某個工具,馬上跑卻說找不到。

白話意思東西是裝好了,但電腦的「搜尋清單」還沒把新工具的位置收進去。

  • 安裝路徑沒進 PATH。
  • 終端機還是舊的,沒重新載入設定。
  • 裝在專案內(本地)但你用全域的方式呼叫。
我剛用〔你的安裝方式,例如 npm install -g、brew〕裝好 `〔工具名〕`,但一跑就說 `command not found`。請幫我判斷是 PATH 沒設好、還是要重開終端機、還是我呼叫的方式錯了,一步步帶我排查。

「裝好卻找不到」十之八九是 PATH 或沒重開視窗的問題,先關掉終端機重開再試一次。寫程式很少從零開始,你會用到很多別人寫好的積木(套件,Package)。這一類錯誤通常在說:「你要用的積木,我手上沒有,或裝壞了。」

二、套件與相依類

Cannot find module 'X' 或 Module not found: Can't resolve 'X'

你會在哪看到啟動或執行專案時,畫面停在某一行說找不到某個模組。

白話意思程式想拿某塊積木來用,但那塊積木沒被裝進來。

  • 這個套件還沒安裝。
  • 名字拼錯,或大小寫不對。
  • `node_modules` 資料夾遺失或壞掉。
我執行專案時出現 `Cannot find module ``'``〔它說找不到的名字〕``'`。請先判斷這是「還沒安裝」還是拼錯名字?如果要安裝,直接給我完整的安裝指令,並告訴我要在哪個資料夾裡打。

把 `'X'` 裡那個確切名字複製給 AI,它常常一眼就看出是少裝了、還是打錯字。

npm ERR!(一大片紅字)

你會在哪看到執行 `npm`` install` 安裝套件失敗時,噴出一整片以 `npm`` ERR!` 開頭的訊息。

白話意思安裝過程出事了,真正的原因藏在這堆紅字裡的某一行。

  • 網路不穩或來源被擋。
  • 版本互相打架。
  • 之前裝到一半壞掉,殘留檔案卡住。
我跑 `npm`` install` 失敗,噴出一大片 `npm`` ERR!`。我把整段完整貼給你,請幫我找出「真正的關鍵那一行」是什麼、代表什麼問題,再給我對應的解法。訊息如下:〔貼上整段紅字,不要只貼第一行〕

`npm`` ERR!` 會有很多行,最有用的線索常在中後段。整段貼、別自己挑,讓 AI 幫你找重點。

unable to resolve dependency tree 或 peer dependency conflict

你會在哪看到安裝套件時,說相依關係無法解決、有 peer dependency 衝突。

白話意思兩塊積木對該用哪一版的第三塊積木意見不合,卡住了。

  • 新套件跟現有套件要求的版本對不上。
  • 專案裡某些套件太舊。
我安裝套件時出現 `peer dependency conflict`(完整訊息如下)。請先幫我看懂是「哪兩個套件、為了哪個版本」在衝突,再告訴我最安全的解法是什麼,並提醒我硬繞過去會不會有後遺症。訊息:〔貼上整段〕

網路上常叫人加 `--force` 或 `--legacy-peer-deps` 硬裝,但那是繞過問題不是解決。先問 AI 有沒有更乾淨的作法。

lockfile 衝突(package-lock.json 出現 <<<<<<< 標記)

你會在哪看到多人協作或你合併版本後,安裝時出錯,打開 lockfile 看到奇怪的箭頭符號。

白話意思記錄「每塊積木裝哪一版」的清單被兩邊各改一次,打架了。

  • 合併(merge)不同版本時 lockfile 被雙方都動過。
  • 手動改了這個檔案。
我的 `package-``lock.json`(或 `pnpm-lock.yaml`)出現 `<<<<<<<` 這種衝突標記,安裝就失敗。我是零基礎,這個檔案我看不懂也不敢亂改。請告訴我最安全的處理方式,最好是能直接重新產生一份乾淨的,一步步帶我做。

lockfile 是電腦自動產生的檔案,通常最省事的解法是刪掉它重新安裝,讓工具重生一份,不用自己去改箭頭。

裝完套件後指令仍 command not found

你會在哪看到明明 `npm`` install` 成功了,想用那個套件提供的指令卻說找不到。

白話意思積木裝在這個專案的工具箱裡,但你用全電腦通用的方式在叫它,兩邊對不上。

  • 套件裝在本地(專案內)而非全域。
  • 該用專案內的執行方式(例如透過 `npx` 或 package.json 的 script)。
我用 `npm`` install` 裝了 `〔套件名〕`,安裝顯示成功,但我直接打它的指令卻 `command not found`。請幫我判斷它是裝在本地還是全域,還有正確的呼叫方式應該是什麼(例如是不是要用 npx 或 package.json 裡的 script)。

專案內裝的工具,通常要用 `npx`` ``指令名` 或寫進 package.json 的 scripts 來跑,而不是直接打指令名。這一類是程式碼本身寫法出了小差錯,通常是漏字、拼錯或括號沒打完整。好消息是它幾乎都會告訴你出錯的檔案跟行數,AI 修起來很快。

三、語法與型別類

SyntaxError: Unexpected token

你會在哪看到一存檔或一執行就立刻報錯,程式根本跑不起來。

白話意思程式的文法有地方不通順,電腦讀到某個字看不懂。

  • 少了逗號、引號、括號,或多打了一個。
  • 中英文標點混用(例如不小心打成全形的引號)。
  • 複製貼上時混進了奇怪字元。
我存檔後出現 `SyntaxError``: Unexpected token`,它指到〔檔名與行號,紅字裡會寫〕。請幫我看這附近是不是少了或多了標點、括號。我把那一段程式碼貼給你:〔貼上錯誤指到的那幾行〕

語法錯誤最常見的元兇,是少一個括號或引號。把它指的那一行連同上下各兩三行一起貼給 AI,通常一秒就抓到。

TypeError: Cannot read properties of undefined (reading 'xxx')

你會在哪看到程式跑到一半、或某個按鈕點下去時當掉,這是最常見的紅字之一。

白話意思程式想從一個其實根本不存在的東西身上拿資料,撲了個空。

  • 資料還沒載入完成就先被使用。
  • 名字打錯,拿到一個空值。
  • 預期有內容的清單其實是空的。
我遇到 `TypeError``: Cannot read properties of undefined (reading ``'``〔它說的那個名字〕``')`。這在我〔說明你剛做的動作,例如按下送出、開啟頁面〕時發生。請幫我判斷是不是某個資料還沒準備好就被用了,並教我怎麼加保護讓它不要一空就爆掉。相關程式碼:〔貼上〕

這個錯誤幾乎都跟時機有關:東西還沒到,你就先去拿了。跟 AI 說清楚「我點了什麼才出問題的」,它會更快定位。

TypeError: X is not a function

你會在哪看到呼叫某個功能時,說它不是一個函式。

白話意思你把一個不能被當成動作來用的東西,硬當成動作去執行了。

  • 名字拼錯,或大小寫不符。
  • 套件沒正確引入,拿到的不是預期的功能。
  • 版本更新後,那個功能改名或被移除。
我呼叫 `〔那個名字〕` 時出現 `is not a function`。請幫我確認這個名字有沒有拼錯、是不是引入的方式不對、還是它在新版被改名了。我用的套件是〔套件名與版本,若知道〕,程式碼片段:〔貼上〕

如果是最近升級過套件才壞的,跟 AI 講一聲「我剛更新過版本」,這常常就是主因。

ReferenceError: X is not defined

你會在哪看到執行時說某個名字沒有被定義。

白話意思你用了一個從來沒宣告過、電腦不認識的名字。

  • 變數名打錯字。
  • 忘了先宣告就直接使用。
  • 該引入的東西沒引入。
我遇到 `ReferenceError``: ``〔那個名字〕`` is not defined`。請幫我判斷是我把名字打錯了、還是漏了宣告、還是少 import 了某個東西。這是相關程式碼:〔貼上〕

`is not defined`(沒定義)跟前面的 `is not a function`(不是動作)不一樣:前者是「這個名字根本不存在」,後者是「名字存在但用錯方式」。跟 AI 講清楚看到的是哪一個。

SyntaxError: Unexpected end of input

你會在哪看到存檔或執行時報錯,指的行號常常是檔案的最後一行。

白話意思電腦讀到檔案結尾了,卻發現有個括號或引號開了沒關,還在等你補上。

  • 少了一個結尾的 `}`、`)` 或 `]`。
  • 引號只打了前半沒打後半。
  • 刪程式碼時不小心刪掉一半。
我出現 `Unexpected end of input`,它指到檔案最後。我猜是有括號或引號沒關好。請幫我檢查這個檔案的括號有沒有成對,把該補的補上。整個檔案內容如下:〔貼上整個檔案〕

這類錯誤把整個檔案貼給 AI 最有效,因為問題常常不在它指的那一行,而是前面某處少關了一個括號。程式跑得起來,但一操作就出狀況,或畫面怪怪的:畫面空白、一直轉圈或連不到伺服器。這一類跟執行當下和連線有關,也是設計網頁最常撞到的一區。

四、執行期與網路類

EADDRINUSE: address already in use :::3000

你會在哪看到啟動專案時,說某個 port(連接埠,例如 3000)已經被占用。

白話意思你要用的那扇門,已經有另一個程式站在那裡了,擠不進去。

  • 之前開的專案沒關乾淨,還占著同一個 port。
  • 另一個程式剛好也用這個 port。
我啟動專案時出現 `EADDRINUSE: address already in use ``:::``〔那個數字〕`。請告訴我兩條路:一是怎麼把占用這個 port 的舊程式關掉,二是怎麼改用另一個 port 啟動。我用〔Mac/Windows〕,一步步帶我。

最快的解法通常是把之前那個沒關的終端機視窗找出來關掉,或直接換一個 port 號啟動。

blocked by CORS policy

你會在哪看到網頁想跟後端或某個 API 拿資料時,在瀏覽器的開發者工具(Console)看到這行紅字,畫面資料出不來。

白話意思這是瀏覽器的安全門禁,它擋住了「從這個網站去跟另一個網站要資料」的動作,因為對方沒說「我允許你」。

  • 後端沒設定允許你的前端來存取。
  • 前端呼叫的網址不對。
  • 本地開發跟線上網址對不上。
我的網頁抓資料時,Console 出現 `blocked by CORS policy`。請用白話跟我解釋 CORS 是什麼,然後幫我判斷該改的是前端呼叫的方式,還是後端要開放權限,並分別告訴我怎麼做。我的前端跑在〔網址〕,要打的 API 在〔網址〕。

CORS 幾乎都要在「被呼叫的那一端(後端/API)」設定允許,光改前端通常沒用。把兩邊網址都告訴 AI,它才好判斷。

Failed to fetch 或 fetch failed

你會在哪看到程式要去拿網路資料時失敗,畫面可能卡住或顯示錯誤。

白話意思程式伸手去某個網址拿東西,但那隻手根本沒碰到對方。

  • 網址打錯,或後端根本沒啟動。
  • 網路斷線。
  • 被 CORS 或防火牆擋下(會伴隨其他訊息)。
我抓資料時出現 `Failed to fetch`。請幫我一項一項排查:後端有沒有在跑、網址對不對、是不是網路或 CORS 問題。告訴我每一項要怎麼自己確認。我要打的網址是〔網址〕。

先確認「你要連的那個後端或服務,現在到底有沒有在運作」。很多 `Failed to fetch` 只是因為後端沒開。

畫面一片空白(沒有任何紅字)

你會在哪看到打開網頁只有全白,什麼都沒有,看起來像沒報錯。

白話意思程式其實在背後出錯了,只是錯誤躲在瀏覽器的開發者工具裡,沒顯示在畫面上。

  • 有 JavaScript 錯誤讓整頁沒渲染出來。
  • 某個資料是空的導致畫面崩掉。
  • 路徑或引入出錯。
我的網頁打開是一片空白,畫面上沒有任何錯誤。請教我怎麼打開瀏覽器的開發者工具、切到 Console 分頁去看有沒有紅字,我把看到的紅字貼給你。如果 Console 是空的,也請告訴我下一步該看哪裡。

畫面空白不等於沒錯,只是錯誤藏起來了。按下鍵盤的 F12 打開開發者工具、看 Console 分頁,紅字通常就在那裡等你。

畫面一直轉圈、無限載入

你會在哪看到頁面卡在載入動畫,資料永遠出不來。

白話意思程式在等一個永遠等不到的回應,於是一直卡在載入中的狀態。

  • 要拿的資料請求失敗了,但沒有處理失敗的情況。
  • 後端沒回應或回應很慢。
  • 載入的判斷邏輯有誤,永遠停在還在載入。
我的頁面一直轉圈、載不出來也不報錯。請幫我判斷是不是「資料請求失敗了但程式沒處理」,並教我怎麼加上「載入失敗就顯示提示」而不是一直轉。同時教我怎麼在開發者工具的 Network 分頁看那個請求是成功還失敗。相關程式碼:〔貼上〕

開發者工具的 Network(網路)分頁能看到每個請求的狀態,紅色的那筆通常就是卡住的元兇。

500 Internal Server Error

你會在哪看到呼叫後端或打開頁面時,回傳 500。

白話意思不是你的錯,是伺服器那一端自己出事了,它自己也處理不了。

  • 後端程式碼有 bug。
  • 資料庫連不上或查詢出錯。
  • 環境變數(設定值)沒設好。
我呼叫後端時回 `500 Internal Server Error`。我知道這代表伺服器端出錯。請教我去哪裡看後端的錯誤紀錄(log),找出真正的錯誤那一行,我再貼給你。我的後端是〔平臺或框架名,若知道〕。

500 只是「表面代碼」,真正的原因寫在伺服器的 log 裡。跟 AI 要「怎麼看 log」,找到裡面那行真正的錯誤才是關鍵。

Maximum call stack size exceeded

你會在哪看到程式突然當掉,噴出這行,通常伴隨一大串重複的訊息。

白話意思程式陷入了自己一直呼叫自己的無底洞,像照鏡子照到無限層,記憶體撐爆了。

  • 函式在沒有出口的情況下不斷呼叫自己(無限遞迴)。
  • 兩個功能互相呼叫,繞不出來。
  • 資料結構意外形成迴圈。
我遇到 `Maximum call stack size exceeded`。我知道這通常是「無限循環呼叫」造成的。請幫我從這段程式碼找出是哪裡在無限呼叫自己、要怎麼加上停止條件。程式碼:〔貼上你懷疑的那段〕

這個錯誤幾乎都跟某段程式沒有終點、一直重複有關。把最近改動的那段貼給 AI,它很擅長抓出這種迴圈。打個比方,Git 就好像是你的遊戲存檔系統,讓你隨時能回到之前的版本。但存檔合併時偶爾會打結,這一類就是教你怎麼解結,不要慌張刪東西。