【发布时间】:2010-09-15 10:55:26
【问题描述】:
文档说调用 sys.exit() 会引发一个 SystemExit 异常,该异常可以在外部级别中捕获。我有一种情况,我想明确且毫无疑问地从测试用例内部退出,但是 unittest 模块捕获了 SystemExit 并阻止了退出。这通常很好,但我试图处理的具体情况是我们的测试框架检测到它被配置为指向非测试数据库。在这种情况下,我想退出并阻止运行任何进一步的测试。当然,由于 unittest 捕获了 SystemExit 并愉快地继续前进,它阻碍了我。
到目前为止,我想到的唯一选择是使用 ctypes 或类似于直接调用 exit(3) 的东西,但这对于应该非常简单的东西来说似乎是一个非常丑陋的 hack。
【问题讨论】:
-
这在尝试从嵌入式 IPython shell 退出程序时也很重要。
标签: python exception exit systemexit