sys.exit 文档中拦截 Python 调用是什么意思?

Apu*_*lol 4 python exit sys python-3.x

在Python文档中,据说可以在外层拦截exit调用。那么“在外部层面拦截”实际上是什么意思呢?更具体地说,拦截呼叫是什么意思?

Jim*_*ard 6

这意味着 anexcept SystemExit将捕获引发的异常,从而拦截退出 Python 时尝试的调用。sys.exit是通过 raise 实现的SystemExit,你可以处理。

使用适当的except子句:

from sys import exit
try:
    exit("Exiting")
except SystemExit as e:
    print("Well, no you're not.")
Run Code Online (Sandbox Code Playgroud)

工作正常并继续执行。你拦截了它。

正如 @chepner 所指出的,呼叫没有被拦截;调用exit已完成。生成的异常将被您提供的异常处理程序拦截。