我们在第一部分中有提到过一个关键字— finally,但我一直没有写,为啥?
它为try 代码块中的代码定义结束操作,例如:
f=open('foo.txt','r')
try:
# 做自己想做的事
finally:
f.close()
# 无论前面发生过什么,都会关闭文件
finally 子句不是用于捕捉错误的,相反,它用于提供一些代码,无论是否出现错误,都必须执行该段代码。
如果没有引发异常,finally字句中的代码将在try代码块中的代码执行完成之后立即执行。如果有异常,控制权先传递给finally自己的第一条语句。
这段代码执行完成后,将重新引发异常然后交由另一个异常处理程序进行处理。
参考文献