1.语法
‘’’try:
执行相关语句1
except:
执行相关语句2
else:
执行相关语句3
‘’‘
#解释:
1.先尝试执行相关语句1
2.若在执行中报错,那么执行相关语句2
3.若执行语句1没有报错,那么执行相关语句3
2.异常的类型:
'''
异常的类型
'''
print(num)
# f=open('muxue.txt','r')
分别运行结果
NameError: name 'num' is not defined
f=open('muxue.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: 'muxue.txt'
3.捕获一个异常与多个异常信息:
一.
'''
捕获指定异常
注意:如果不是指定异常,无法捕获
try 下方只放一行尝试执行的代码
'''
try:
print(num)
except NameError:
print('异常已捕获')
运行结果:
异常已捕获
二.
'''
捕获多个异常
'''
try:
# print(num)
# f=open('muxue.txt','r')
10/0
except(NameError,FileNotFoundError,ZeroDivisionError) as result:
print('捕获了多个异常')
运行结果
捕获了多个异常
三.
'''
捕获异常信息的所有异常
'''
try:
# print(num)
f=open('muxue.txt','r')
except Exception as result:
print(result)
运行结果
[Errno 2] No such file or directory: 'muxue.txt'
4.异常中的finally
'''
finally:
无论异常都需要执行的代码
'''
try:
f=open('muxue.txt','r')
except Exception as result:
f=open('muxue.txt','w')
else:
print('没有发生异常')
finally:
f.close()
运行结果:
应用场景对文件进行读写操作最终都要对文件进行关闭操作即可用finally,对数据库进行操作时打开关闭数据库........。
5.实例代码:
案例一:
'''异常
'''
try:
f = open('text.txt','r')
except:
f = open('text.txt','w')
运行的结果:
进程已结束,退出代码0
案例二:
import time
def buy_one_stock(stock_name='sh60000'):
'''此程序用于下单购买某个股票,但买入的过程,程序有50%概率报错'''
import random
random=random.random()
if random>=0.5:
return
else:
raise ValueError('程序报错')
max_try_num=5
tyr_num=0
while True:
try:
buy_one_stock()
except:
print('出错了,请重试')
tyr_num+=1
time.sleep(1)
if tyr_num>5:
print('超过最大尝试次数,下单失败')
break
else:
print('下单成功了')
break
运行结果:
出错了,请重试
出错了,请重试
下单成功了