【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据

| 进度条:学习第 38 天(38/191)|当前完成度:约 31% |
📎 今日速览:主学 try/except 异常处理 + traceback,4 轮报错实验亲手跑通作用域题和 traceback 题,最大体会:报错不是失败,是实验数据 ← 先看这段


〇、今日投入 & 产出(量化)

维度 内容 量化
投入-时间 看视频 + 抄跑代码 + 4 轮报错实验 约 3~4 小时
投入-外部输入 try/except 视频教程、手写笔记 2 页、学习复盘文档 3 类
产出-代码/数据 try_except练习.py:异常结构、作用域题、traceback 题、4 轮报错实验 1 份代码
产出-文档/博客 本篇 Day 38 学习笔记(含 4 个踩坑全记录) 1 篇

一、今日任务(完成+收获)

1.1 今日任务原文

学习 try/except 异常处理,配合 traceback 模块;理论听懂后必须亲手写代码、亲手踩坑,跑通作用域题和 traceback 题。

📷 图1:try/except 手写笔记(结构与变量作用域要点)

1.2 完成情况

任务项 计划 实际 状态
try/except 基本结构与语法 掌握 掌握,含 else / finally / raise 全家福 ✅ 完成
指定异常类型与多分支捕获 掌握 掌握,能按类型分类处置 ✅ 完成
变量作用域题 跑通 亲手跑通,含未定义变量陷阱 ✅ 完成
traceback 题 跑通 print_exc / format_exc 都跑过 ✅ 完成
4 轮报错实验 逐个踩坑 4 个坑全部复现并解决 ✅ 完成

1.3 今日收获 & 学到的知识点

① try / except 是什么:try 里放"可能出错的代码",except 里放"出错后的补救"。就算出错,程序也不会一下崩掉。

  • 大白话:端汤先垫个托盘(try),洒了只脏托盘(except),桌子没事。

② 指定异常类型(只抓你想抓的错) ​:except 后面写具体错误名(比如 ZeroDivisionError),就只接这一种错;也可以用 except Exception as e 把"所有错"都接住再慢慢看。

  • 大白话:except 像门口保安,你写"只拦张三",那李四进来就放行;写"所有人",那就谁来拦谁。

**③ 报错分两种(对比表)**​

对比项 格式错误(SyntaxError) 运行时错误(1/0 这类)
错在哪 句子写错了,Python 还没跑就拦下 句子没错,跑到一半才炸
怎么发现 红色小箭头 ^ 指着错字 报错里写明第几行

④ traceback:教你看懂报错红字 。读法就一句:从下往上读------最后一行是错误类型,往上是第几行出错。

写法 作用
traceback.print_exc() 当场把报错打出来
error_info = traceback.format_exc() 把报错抄成一个字符串存起来,想打印再打印

**⑤ 变量的两个坑(今天最大的收获)**​:

  • 坑一:变量全文件通用。前面定义过的 x,后面随时能用;重名会拿到旧值。比喻:公共冰箱贴了你的名字,全屋都能拿------旧标签不撕,拿到的可能是上周的剩菜。防法:一个变量只干一件事,新功能起新名字。

  • 坑二:try 里出事太早、变量还没来得及赋值,except 里用它就会报 NameError。防法:先写 result = None 占个位。

⑥ finally / else / raise 一句话分工:else 没出错才跑;finally 收摊必跑;raise 主动拉警报。

📷 图2:traceback 手写笔记(print_exc 与 format_exc 用法)


二、卡点分两类(已解决 / 未解决)

✅ 今日已解决

2.1 两句代码挤一行报 SyntaxError 怎么解开的
  • 什么时候出现 :写成 y = 1 / 0 x = 10,报 SyntaxError: invalid syntax,红色小箭头 ^ 指着出事位置。

  • 我的理解:像对服务员一口气糊着说"番茄炒蛋不要香菜帮我加菜",Python 听不懂。

  • 解决办法:两句代码各占一行,顺手记住口诀"冒号、缩进、一句一行"。

✅ 验证结果:拆成两行后正常运行,除零错误如约而至。

2.2 改了代码却"没变化"(旧变量干扰)怎么解开的
  • 什么时候出现:把 x = 10 挪到 1/0 后面,运行居然还打印 10,没有报错;思考题的 NameError 一直抓不到。

  • 我的理解:实验 1 早在文件开头定义过 x = 10,变量全文件共享,except 里的 print(x) 摸到的是旧 x------不报错、只悄悄给错值,比报错更可怕。

  • 解决办法:把变量换成全文件从没用过的名字 price 再跑。

✅ 验证结果 :成功抓到 NameError: name 'price' is not defined,还附赠彩蛋 Did you mean: 'print'?。验证"应该报错"的行为时,要用全新变量名排除干扰因素。

📷 图3:VS Code 实操截图------终端精确报出异常位置与类型

2.3 报错信息比想象的长怎么解开的
  • 什么时候出现:NameError 前面多了一段 "During handling of the above exception, another exception occurred"。

  • 我的理解:处理第一个异常(除零)的过程中又冒出第二个异常(price 未定义),Python 把两件事都记录在案------像事故报告的"连环追尾记录"。

  • 解决办法:学会从下往上读 Traceback:最后一行是错误类型,往上是案发位置。

✅ 验证结果:能独立读懂完整报错信息,准确定位到 line 79。

❓ 还没搞懂(带到明天)

没吃透的点 卡在哪 准备什么时候啃
raise 主动抛异常与异常链完整机制 只知道 raise 能拉警报,"连环追尾记录"的底层规则还没亲手实验过 本周内

💡 今天没踩硬坑,这条是"最拿不准、想验证但还没验证"的点。


三、小结和下一步计划

3.1 今日小结

  • 停更了几天处理个人事情,这篇 Day 38 断断续续练了两天才成稿------没有赶进度笔记和代码都是亲手磨出来的。

  • 理论(看视频)30 分钟就觉得"全懂了",实操却花了好几个小时,但正是这 4 个坑让每个知识点都长在了手上:作用域题和 traceback 题都亲手跑通。复更第一天,越踩坑越踏实。

3.2 ✨ 高光时刻 / 亮点

换了一个从没用过的新变量名 price 再跑,成功抓到了 NameError 报错。

为什么算高光:结果太顺利的时候,先怀疑"是不是没跑到新代码"------这个排查习惯,以后做产品验证也用得上。

3.3 下一步计划

任务 验收标准
学 HTTP 与 API 概念:请求 / 响应 / 状态码 看视频 + 代码实操运行,能用自己的话说清"请求-响应"一来一回,认出 200 / 404 这类状态码
raise 主动抛异常实验(遗留) 亲手制造一次异常链,读懂完整"连环追尾"报错

📌 3 行速记

· 做了:try/except + traceback 理论 + 4 轮报错实验,跑通作用域题和 traceback 题

· 学会:变量作用域相通但赋值前跳转会 NameError;traceback 能精确到行;报错是实验数据

· 卡住:raise 主动抛异常与异常链机制未亲手实验


我是卿卿,一个正在自学 AI 知识的小白,一个转行学 AI 的小白。这是「AI产品经理191天通关计划」的 Day 38,目标很简单:每天留下一份能回头看懂的笔记。

相关推荐
Dmz丶1 小时前
前端转 AI 100 天 Day 27:Docker 容器化——从“我电脑能跑“到“到处能跑“
python
cxj75141 小时前
GEO 工程化实践:关键页面的快慢双轨更新与多引擎引用维护
人工智能·geo·geo优化
Java_AI工程师1 小时前
Spring4 / SpringBoot1.x 老项目想接入 AI?不用升级框架!3 套无痛落地方案
java·人工智能·spring boot
znnnk1 小时前
【AI技术】Vibe Coding 实践指南:从项目规划到高效开发
人工智能·ai·ai编程·ai ide·vibe coding
keyipatience1 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
Simon_lca1 小时前
ZARA、H&M、SHEIN验厂差异全对比:一套底层记录,三套接口输出
大数据·人工智能·经验分享·科技·制造
全栈练习生1 小时前
文档智能与实践
python·ai
爱喝雪碧的可乐1 小时前
DeepSeek 崩了近5小时:一次故障扒透「单点依赖、重试风暴与大模型高可用」
大数据·人工智能·deepseek
GlobalTradercrb1 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo