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
- def tryTest():
- try:
- den = input("input a number:")
- x = 1.0/int(den)
- print x
- return 1
- except Exception, e:
- print e
- return 0
- finally:
- print "this is a finally test"
- result = tryTest()
- print result
执行try.py
当输入为1时,程序没有捕捉到异常,则返回值为1,但是在返回之前会执行finally的语句块,也即是打印“this is a finally test”这句话,如下图:
当输入为0时,程序没有捕捉到除0异常,执行except中的语句块,则返回值为0,但是在返回之前会执行finally的语句块,如下图: