郑州做网站网站建设费用/广州今日新闻最新消息
Python入门进阶篇 No.2 —— try_except基本结构
文章目录
- Python入门进阶篇 No.2 —— try_except基本结构
- 一、try...一个 except 结构
- 二、try...多个 except 结构
- 总结
前生篇:异常本质_调试核心理念
后世篇:try…except…else 结构_try…except…finally 结构
基础篇:小白不看都能懂 —— Python之真功夫系列(全章)
一、try…一个 except 结构
- try…except 是最常见的异常处理结构。结构如下:
try:被监控的可能引发异常的语句块
except BaseException [as e]:异常处理语句块
- try 块包含着可能引发异常的代码,except 块则用来捕捉和处理发生的异常。执行的时候,如果 try 块中没有引发异常,则跳过 ecept 块继续执行后续代码;执行的时候,如果 try块中发生了异常,则跳过 try 块中的后续代码,跳到相应的 except 块中处理异常;异常处理完后,继续执行后续代码。
# 遇到异常的执行顺序:
# 测试简单的0不能做除数出现的异常try:print('step1')a = 6 / 0print('step2')
except BaseException as e:print('step3')print(e)print('step4')
-----------------------
step1
step3
division by zero
step4
- 我们可以看到,程序执行到引发异常的语句时,直接掉到 except 异常处理语句块进行处理;处理完毕后,继续执行下面的程序。
# 遇到异常的执行顺序:
# 测试简单的0不能做除数出现的异常try:print('step1')a = 6 / 2print('step2')
except BaseException as e:print('step3')print(e)print('step4')
----------------------
step1
step2
step4
- try 语句块没有发生异常,则正常执行完 try 块后跳过 except 异常处理语句块,继续往下执行。
- 循环输入数字,如果不是数字则处理异常;直到输入 66,则结束循环。
while True:try:x = int(input('请输入一个数字:'))print('输入的数字是', x)if x == 66:print('退出程序')breakexcept:print('异常:输入的不是一个数字')
-------------------------------
输入的数字是 56
请输入一个数字:xyz
异常:输入的不是一个数字
请输入一个数字:66
输入的数字是 66
退出程序
二、try…多个 except 结构
- 上面的结构可以捕获所有的异常,工作中也很常见。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。为了避免遗漏可能出现的异常,可以在最后增加 BaseException。结构如下:
try:被监控的、可能引发异常的语句块
except Exception1:处理 Exception1 的语句块
except Exception2:处理 Exception2 的语句块...
except BaseException:处理可能遗漏的异常的语句块
# 多个except结构
try:a = input('请输入被除数:')b = input('请输入除数:')c = float(a) / float(b)print(c)
except ZeroDivisionError:print('异常,除数不能为0')
except TypeError:print('异常,除数和被除数都应该为数值类型')
except NameError:print('异常,变量不存在')
except BaseException as e:print(e)print(type(e))
--------------------------------
请输入被除数:10
请输入除数:0
异常,除数不能为0
总结
以上帮各位总结好了,收藏,关注即可查收。
前生篇:异常本质_调试核心理念
后世篇:try…except…else 结构_try…except…finally 结构
基础篇:小白不看都能懂 —— Python之真功夫系列(全章)
关注下方公众号,免费拿Python学习资料!!!