python的try和except用法_try except(多个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]

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关键字的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值