python中的try-catch-finally-else简介

一.try/catch简介
try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零错误、从未定义的变量上取值等;而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合。即如果不想程序因为异常情况而中断,就可以用try来捕获,然后交予catch来处理。

二.处理流程
try:
code #需要判断是否会抛出异常的代码,如果没有异常处理,python会直接停止执行程序

except: #这里会捕捉到上面代码中的异常,并根据异常抛出异常处理信息
#except ExceptionName,args: #同时也可以接受异常名称和参数,针对不同形式的异常做处理

code #这里执行异常处理的相关代码,打印输出等

else: #如果没有异常则执行else

code #try部分被正常执行后执行的代码

finally:
code #退出try语句块总会执行的程序
可以看到,

1.这里的else是和trycatch连用的,并且else只在try中代码没有异常的情况下执行,else必须在except这句代码存在的时候才能出现。

2.finally这个片段里面的代码是肯定在最后执行的,无论前面是否发生异常,最后总会执行finally片段内的代码。

所以,正常的流程是:try没有发生错误-》else内的代码-》finally中的代码。

发生异常的流程是:try中发生异常-》被except捕获并执行except片段中的代码-》执行finally中的代码。

三.案例展示
定义产生异常的函数。

def divide(a,b):
return a/b
1.通过try-catch捕获异常

try:
divide(1,0)
except:
print(“divide by 0”)
else:
print(“the code is no problem”)

print(“code after try catch,hello,world!”)
结果:

可以看到,trycatch捕获异常后依然可以执行后面的代码,并且捕获到了异常执行异常中的代码。并且else在捕获到异常的时候并不执行。

2.else只在没有异常的时候执行。

try:
divide(1,1)
except:
print(“divide by 0”)
else:
print(“the code is no problem”)

print(“code after try catch,hello,world!”)

3.finally总在最后执行,不管有没有异常。

try:
divide(1,1)
except:
print(“divide by 0”)
else:
print(“the code is no problem”)
finally:
print(“this is finally code,i’m running”)

try:
divide(1,0)
except:
print(“divide by 0”)
else:
print(“the code is no problem”)
finally:
print(“this is finally code,i’m running”)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值