最佳答案
文档说调用 sys.exit ()会引发一个 SystemExit 异常,这个异常可以在外部级别捕获。我遇到了这样一种情况: 我希望确定无疑地从测试用例中退出,但是单元测试模块会捕获 SystemExit 并阻止退出。这通常是很好的,但是我试图处理的特定情况是我们的测试框架检测到它被配置为指向一个非测试数据库。在这种情况下,我希望退出并防止运行任何进一步的测试。当然,由于 unittest 陷入了 SystemExit 并继续愉快地向它的方向发展,所以它阻碍了我。
到目前为止,我想到的唯一选择是直接使用 ctype 或类似于 call exit (3)的东西,但是对于一些应该非常简单的东西来说,这似乎是一个相当丑陋的黑客技巧。