Python中的try...except...finally

本文详细介绍了Python中的异常处理机制try, except, finally的使用方法。通过一个具体的示例程序,展示了如何捕获并处理异常,以及finally语句块在资源释放等方面的应用。

try, except, finally是Python中的异常捕捉机制,通常的用法就是try..except...结合起来用,程序捕捉try语句块中的异常,如果发现异常就把异常交给except中的语句块进行处理,也就是执行except中的语句,这里except也可以结合if...else一起使用。

当然,try...except也可以结合finally使用。则将finally放在最后,finally语句块的内容通常是做一些后事的处理,比如资源释放什么的,并且finally语句块是无论如何都要执行的,即使在前面的try和except语句块中出现了return,都现将finally语句执行完再去执行前面的return语句。下面看一个简单的例子:

try.py

[python] view plain copy
  1. def tryTest():  
  2.     try:  
  3.         den = input("input a number:")  
  4.         x = 1.0/int(den)  
  5.         print x  
  6.         return 1  
  7.     except Exception, e:  
  8.         print e  
  9.         return 0  
  10.     finally:  
  11.         print "this is a finally test"  
  12.   
  13. result = tryTest()  
  14. print result  

执行try.py

当输入为1时,程序没有捕捉到异常,则返回值为1,但是在返回之前会执行finally的语句块,也即是打印“this is a finally test”这句话,如下图:

当输入为0时,程序没有捕捉到除0异常,执行except中的语句块,则返回值为0,但是在返回之前会执行finally的语句块,如下图:


所以无论如何finally语句块中的代码都被执行了,倘若此时finally中有个return语句的话,那么整个函数就会从finally中的return语句中返回,前面的return语句就没用啦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值