作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
文档说调用 sys.exit() 会引发一个 SystemExit 异常,该异常可以在外部级别中捕获。我有一种情况,我想明确且毫无疑问地从测试用例内部退出,但是 unittest 模块捕获了 SystemExit 并阻止了退出。这通常很好,但我试图处理的具体情况是我们的测试框架检测到它被配置为指向非测试数据库。在这种情况下,我想退出并阻止运行任何进一步的测试。当然,由于 unittest 捕获了 SystemExit 并愉快地继续前进,它阻碍了我。
到目前为止,我想到的唯一选择是使用 ctypes 或类似直接调用 exit(3) 的东西,但这似乎是一个非常简单的东西。
最佳答案
您可以调用os._exit()
直接退出,不抛出异常:
import os
os._exit(1)
这会绕过所有 python 关闭逻辑,例如 atexit
模块,并且不会运行您在这种情况下试图避免的异常处理逻辑。参数是进程将返回的退出代码。
关于python - 有没有办法防止从 sys.exit() 引发的 SystemExit 异常被捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173278/
我是一名优秀的程序员,十分优秀!