
就会采纳同学们的建议去更新新篇章哦
✅ 异常是什么、常见报错类型
✅ try + except 基础用法
✅ 多重 except:分类捕获不同错误
✅ else 分支:无异常才执行的代码
✅ finally 分支:无论报错与否必定执行
✅ raise:手动主动抛出异常
✅ 综合实战:计算器、猜数字
📚异常是什么
代码运行时出现错误就会抛出异常(bug)
不处理,程序会无法正常运行
📊常见异常
✍️案例
⌨️代码

🖥️运行结果:

像以上情况就会导致程序无法正常运行了
那么异常处理的好处,就是为了在遇到这类可能出错的情况下
也可以让程序继续运行下去
📚try + except 基础用法
✍️书写格式
try:可能出错的代码except 异常类型:出错后的提示代码
✍️案例:
还是以0不能作为除数来进行
⌨️代码

🖥️运行结果:

这个时候,控制台是没有报错的
而是执行了except中的代码
以上都是对单个错误进行预判处理
但是很多情况下,错误可能不止1个
📚多重 except:分类捕获不同错误
✍️书写格式
try:代码except 异常1:反馈1except 异常2:反馈2
✍️案例:
继续这个老演员为案例
⌨️代码

🖥️运行结果:
处理的第1个异常

处理第2个异常

以上这个异常其实很多人注册一些账号
设置一些密码的时候都会看到类似的提示
这里需要说一下,except后面也可以不写异常的名称
这样就会 全部捕捉,但是不好的地方就是具体异常需要自己排查
⌨️写法:
try:...except:print("程序出现未知错误")
📚else 分支:无异常才执行的代码
else 特点:
try 中代码完全正常、没有任何异常才运行
只要触发 except,else 直接跳过
✍️案例:猜数字
⌨️代码

🖥️运行结果:

可以自己尝试一下哈🌹
📚 finally 分支:无论报错与否必定执行
finally 核心:不管代码报错还是正常,一定运行,不跳过
✍️书写格式:
try:问题代码except 异常:异常处理else:无异常执行finally:必执行代码
✍️案例:文件操作
无论打开成功失败,最后都关闭文件⌨️代码

🖥️运行结果:

📚 raise:手动主动抛出异常
以上都是捕获程序自动报错
raise 是人为主动抛出异常,一般用来限制非法输入、自定义规则报错的
✍️书写格式
raise + 异常类型("自定义提示文字")
✍️案例:年龄输入判断
年龄范围必须0~120,否则输入错误
⌨️代码

🖥️运行结果:

📚 实战:多功能计算器
while True:try:a = int(input("数字1:"))b = int(input("数字2:"))sum = a / bexcept ZeroDivisionError:print("不能除以0")except ValueError:print("必须输入整数")else:print(f"计算结果:{sum}")breakfinally:print("=====计算结束=====")
