首页 / 堆栈跟踪(Stack Trace)
📖 堆栈跟踪(Stack Trace) 是什么?
堆栈跟踪就是程序崩溃时留下的字条,一步步告诉你它是从哪条路摔下来的。
⚡ 一句话秒懂
堆栈跟踪就是程序崩溃时留下的字条,一步步告诉你它是从哪条路摔下来的。
📖 举个故事
半夜,外卖员小陈的手机 App 闪退了,工程师第二天上班看到后台报错。如果没有记录,他只能干瞪眼:'几百万用户,谁知道哪坏了?'但堆栈跟踪像监控录像一样清清楚楚:第1行——程序在'计算配送费'那一步崩了,原因是把'三公里'当成了文字来算数;第2行——是'下单'功能调用了它;第3行——是用户点了'提交订单'按钮触发的。三行字,直接把问题定位到具体文件和具体一行代码,工程师十秒改完。
💡 类比理解
暂未补充。
🧩 真实例子
暂未补充。
🛠️ 怎么实际使用
AI Agent 开发中,Agent 调用大模型接口、解析返回结果、执行工具,任何一步都可能出错。当程序抛异常时,别只看最后一行错误信息,要从堆栈跟踪里找'第一行属于你自己写的代码'的位置——那通常才是真正的出错点(框架内部的报错往往只是'路过')。上线后可以把堆栈跟踪自动收集到日志系统(如 Sentry),用户还没反馈,你就已经知道哪个函数在哪一行崩了。
📚 进阶原理
异常发生时,堆栈跟踪按调用顺序从内到外列出帧:最上面是出错位置,往下是每一层调用者,通常含文件名、函数名、行号。阅读要点:从下往上还原调用链,定位最上层自己代码的行号;注意异常类型(TypeError、KeyError、ConnectionError)和异常消息,它们指明失败性质。Python 里可用 traceback 模块格式化记录,生产环境配合 logging 把堆栈写入日志而非只打印到控制台,方便事后排查。