是的,它的作用就像一个
finally块接一个
try块,也就是说,它总是执行(除非python进程以异常的方式终止)。
PEP-343的一个示例中也提到了该
with语句,它是该语句的规范:
with locked(myLock): # Code here executes with myLock held. The lock is # guaranteed to be released when the block is left (even # if via return or by an uncaught exception).
但是,值得一提的是,如果
open()不将整个
with块放入
try..except通常不是您想要的块中,就无法轻松捕获调用引发的异常。