您的位置: 网站首页> python基础> 当前文章
try except(多个except)多异常处理
老董-我爱我家房产SEO2020-08-29197围观,130赞
在python中,try except是基本的捕获并处理异常的语句,try except语句里try代码块写一个即可,except 代码块可以写多个,每个 except 块都可以参与处理1个或者多个异常。
我们先从理论上知道下try except 语句的执行流程:
1、首先执行try子句(在关键字try和关键字except之间的语句),如果执行出错,try语句余下的部分将被忽略,系统会自动生成一个异常交给python解释器,此为捕获异常。
2、python解释器收到异常对象后,会寻找能处理该异常的except块,找到后则把该异常对象交给该except代码块处理,此为处理异常。
3、处理异常后,程序继续执行后续的代码(注意不是try后面的代码)。
PS:如果第2步python解释器找不到能处理该异常的except块,则程序运行终止;如果第1步整个try语句执行过程没有异常发生,那么except语句块会被忽略句。
接下来我们用4个案例展示try和except1个或者多个的具体用法。
1个try1个except处理1个异常
先看一下不加异常的运行情况,再看下加上异常处理后的情况
# -*- coding: utf-8 -*- print(1) print(name) print(2) print(3)
1 Traceback (most recent call last): File "D:/pyscript/py3script/python66/python66.py", line 4, inprint(name) NameError: name 'name' is not defined
# -*- coding: utf-8 -*- # 异常处理 try: print(1) print(name) print(2) except NameError as e: print('有异常',e) # 处理异常 print(3)
1 有异常 name 'name' is not defined 3
1个try1个except处理多个异常
# -*- coding: utf-8 -*- try: print(1/0) print(name) except (NameError,ZeroDivisionError) as e: print('出错!除以0或者打印未定义变量',e) print('-----------------------') try: print(name) print(1 / 0) except (NameError,ZeroDivisionError) as e: print('出错!除以0或者打印未定义变量',e)
出错!除以0或者打印未定义变量 division by zero ----------------------- 出错!除以0或者打印未定义变量 name 'name' is not defined
1个try多个except处理多个异常
# -*- coding: utf-8 -*- try: a = [1,2] print(a[2]) print(name) print(1 / 0) except NameError as e: print('出错!打印未定义变量',e) except ZeroDivisionError as e: print('出错!除以0',e) except IndexError as e: print('出错!列表索引异常',e)
出错!列表索引异常 list index out of range
从上面的案例可以看出try except语法很灵活,但是你可能有疑问,在编程中并不知道可能会出现哪一类的Error,那怎么实现捕获并处理异常呢?请继续看下节课的Exception关键字的用法。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
try except(多个except)多异常处理文章写得不错,值得赞赏