异常是什么,为什么需要安全网
程序运行中出岔子叫异常:比如除以 0、取了不存在的格子。默认情况下一出异常程序就整个崩掉。异常处理就是给程序架一张「安全网」,像走钢丝下面挂的网,万一失手能兜住,演出继续。
怎么读报错:最后一行最关键
报错常常一大段,新手一看就慌。诀窍是从下往上看,最后一行最重要,格式是 错误类型: 一句说明。比如 ZeroDivisionError: division by zero,冒号左边是类型(除以零错误)、右边是人话(除以了零)。上面那些只是「出错路过的地方」,先抓最后一行。
四种最常见的错误
- NameError:用了没定义过的名字(常因拼错或忘赋值)。
- TypeError:类型不对,比如文字直接加数字
"年龄" + 18。 - IndexError:列表下标越界,比如 3 个元素却取
nums[3]。 - ZeroDivisionError:除数是 0。
看到报错先来这张表对个号,原因八九不离十。
try / except:兜住错误
把可能出错的代码放进 try,万一出错就跳到 except 执行备用方案,而不是崩掉:
try:
result = 10 / 0
except ZeroDivisionError:
result = 0 # 备用方案
print(result) # 程序没崩,输出 0先预防,兜底是最后一道防线
安全网好用,但别拿它当借口写糙代码。更好的习惯是能提前检查就提前检查,比如除之前先判断除数是不是 0(if count != 0:),try/except 留给「实在没法提前预料」的意外。报错越读越熟,你就越来越会写代码了。