python - 为什么有时用finally来调试呢?

标签 python debugging exception finally

我阅读了很多有关调试 try,exception,finally 的资料。我确实理解当我们尝试一些代码时可能会出现一些异常。但我不明白为什么有时我们已经有异常时还要使用finally?

最佳答案

正如 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()将始终被执行,因此即使写操作引发异常,文件也始终会在最后关闭。

关于python - 为什么有时用finally来调试呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263182/

相关文章:

python - gdb 运行时错误 : pretty-printer already registered: libstdc++-v6

python - Seaborn Distplot 和 Barplot

javascript - PHP 面向对象的类,具有日期时间到月份和日期

node.js - 如何使用 React 入门套件让调试器识别 webstorm 10 中的源映射

spring - 在 Spring 应用程序中处理异常的位置

java - 我如何处理用户定义的异常并在处理它们后恢复程序流程

PHP 5.5 并尝试......终于

python - 弹出索引超出范围 - 作业(列表,for 循环,while 循环)

Python Selenium 查找 url 并切换到下一页

.net - Debug.Assert(false) 不会在 win8 Metro 应用程序中触发