gpt4 book ai didi

python - 有没有办法防止从 sys.exit() 引发的 SystemExit 异常被捕获?

转载 作者:IT老高 更新时间:2023-10-28 20:29:00 27 4
gpt4 key购买 nike

文档说调用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com