python的try和except⽤法_tryexcept(多个except)多异常处
理
在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, in print(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]
python的try和except用法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关键字的⽤法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论