报错与调用栈Stack Trace
你可能会说
终端里报了一大段错,我该把哪一行发给 AI?
程序报错时列出的函数调用位置,通常从抛错帧开始,再列调用者JavaScript 抛出异常时,调用栈通常先列离抛错点最近的函数,再列它的调用者。先在顶部附近找属于自己文件的帧,再结合代码和数据检查原因;栈给出位置线索,不单独证明根因。
也常被叫作调用栈错误堆栈Stack Trace
延伸阅读 · 权威出处
终端里报了一大段错,我该把哪一行发给 AI?
$ node save.js
save.js:24
return items.map((row) => row);
^
TypeError: Cannot read properties of undefined (reading 'map')function handleSave(request) { const items = loadRows(request.file); return items.map((row) => row.total);}function loadRows(file) { const items = readFile(file); return items.map((row) => row);}这是你自己的文件:items 是 undefined,第 24 行对它调用了 .map。先在这里找原因。
堆栈通常先列离抛错点最近的函数,再列调用者;先从顶部附近找自己文件的帧。帧给出位置线索,不单独证明根因。
最上面是出错那一刻的位置:栈顶附近通常是抛错位置,下面依次是它的调用者;运行环境或第三方库帧也可能排在最前面。
只找你自己的文件:栈里可能混有运行环境或第三方库的内部帧。属于你自己文件的帧才对应你写过的代码,是修改的起点。
类型信息指向变量:TypeError: Cannot read properties of undefined 表示代码试图读取 undefined 的属性;结合出错行与实际数据检查哪个值是 undefined。
运行 node save.js 报 TypeError,堆栈指向我自己的 loadRows (save.js:24:21)。请从这一帧附近检查代码,并沿调用者追查输入数据,说明最早在哪一步出现 undefined;修复后重新运行并确认结果。