【问题标题】:Why sometimes finally is used for debugging?为什么有时 finally 用于调试?
【发布时间】:2013-06-20 05:37:16
【问题描述】:

我已经阅读了很多关于调试 try,exception,finally 的资料。我明白当我们尝试一些代码时可能会有一些例外。但我不明白为什么有时我们已经有异常时使用 finally ?

【问题讨论】:

  • finally总是被执行。有时exception 之后的代码可能不会被执行。(想想在exception 引发异常的情况)

标签: python debugging exception finally


【解决方案1】:

正如documentation 中所指出的,finally 子句对于释放外部资源很有用,无论使用是否成功。这些外部资源可以是文件或网络连接,在任何情况下都需要清理。

例如:

try:
   f = open("testfile", "w")
   try:
      f.write("This may not work!")
   finally:
      f.close()
except IOError:
   print("Error! Can't find file")

语句f.close()会一直被执行,所以即使写操作抛出异常,文件最后也会一直关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2012-12-25
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2018-12-28
    相关资源
    最近更新 更多