chu*_*use 2 python try-finally
可能重复:
else的目的,最后是异常处理
我想理解为什么声明中finally存在该条款try/except.我理解它的作用,但很明显,如果它在语言中占有一席之地,我会遗漏一些东西.具体来说,在finally字段中编写一个子句与在try/except语句之外写一个子句之间的区别是什么?
Mar*_*ers 14
该finally套件是保证执行,在无论发生什么事try套件.
用它来清理文件,数据库连接等:
try:
file = open('frobnaz.txt', 'w')
raise ValueError
finally:
file.close()
os.path.remove('frobnaz.txt')
Run Code Online (Sandbox Code Playgroud)
无论异常处理程序(exceptsuite)是否捕获异常,或者return代码中是否有语句,都是如此:
def foobar():
try:
return
finally:
print "finally is executed before we return!"
Run Code Online (Sandbox Code Playgroud)
在循环中使用try/ finally语句,然后使用continue或者break再次执行finally套件来中断循环.保证在所有情况下都可以执行.