异常处理
本节定位
这一节让你的程序在出错时不至于直接崩溃。异常处理会在文件读写、网络请求、API 调用、数据清洗和模型推理中反复出现,重点是学会预判错误、捕获错误,并给出可恢复的处理方式。
学习目标
- 理解什么是异常,为什么需要处理异常
- 掌握
try/except/else/finally的用法 - 学会捕获不同类型的异常
- 能编写健壮的、不会轻易崩溃的程序
什么是异常?
异常就是程序运行时发生的错误。没有异常处理的程序,一遇到错误就会直接崩溃:
# 这些代码都会导致程序崩溃
print(10 / 0) # ZeroDivisionError: 除以零
print(int("abc")) # ValueError: 无法转换
print([1, 2, 3][10]) # IndexError: 索引越界
print({"a": 1}["b"]) # KeyError: 键不存在
# 程序崩溃意味着后面的代码都不会执行
print("这行永远不会被执行")
在真实的程序中,错误是不可避免的——用户可能输入非法数据、文件可能不存在、网络可能断开。异常处理让你能优雅地应对这些问题,而不是让程序直接崩溃。