最后运行清理代码
有时,无论发生什么异常,你都可能希望发生某些事情,例如,如果你需要清理一些资源。
无论是否引发任何例外,都会发生 try
子句的 finally
块。
resource = allocate_some_expensive_resource()
try:
do_stuff(resource)
except SomeException as e:
log_error(e)
raise # re-raise the error
finally:
free_expensive_resource(resource)
使用上下文管理器(使用 with
语句 ) 通常可以更好地处理此模式。