【发布时间】:2015-07-17 09:20:28
【问题描述】:
我有一些代码代表专有测试框架中的一个测试用例,看起来像这样:
def test_alarm(self):
self.setup_some_test_data()
try:
self.send_alarm_message()
except:
print "Unexpected error:", sys.exc_info()
finally:
self.teardown_some_test_data()
我被告知放弃打印,因为它不是必需的,并且测试框架无论如何都会捕获任何异常,这比在这里捕获它们更可取,但我仍然需要始终清除数据,就像在finally 块。
我是否完全放弃 except 块?或者,如何构造代码以有效地拥有一个空的except 块并保留finally?这是 Python 中的良好做法还是有更好的方法?
编辑请注意,我确实尝试完全删除 except 块,并且我没有明显的运行时问题,尽管由于对 send_alarm_message() 的调用不太可能出现异常,所以它我不清楚如果抛出异常会如何工作,或者这是否被 Python 社区认为是好的做法。
【问题讨论】:
-
“我要完全放弃
except块吗?” - 你为什么不试试呢? -
@jonrsharpe 我试过了,没有明显的运行时问题,但由于不太可能出现异常,所以我不清楚如果抛出异常或是否考虑到它会如何工作Python 社区的良好实践。
-
请注意,in the documentation 的某些示例不包括
except。
标签: python exception-handling try-catch-finally try-finally