无法捕获SystemExit异常Python

Can't catch SystemExit exception Python

我试图用以下方式捕获一个SystemExit异常:

1
2
3
4
try:
    raise SystemExit
except Exception as exception:
    print"success"

但是,它不起作用。

但是,当我像那样更改代码时,它确实起作用:

1
2
3
4
try:
    raise SystemExit
except:
    print"success"

据我所知,except Exception as exception应该抓住任何例外。这里也是这样描述的。为什么我不在这里工作?


如文档所述,SystemExit不从异常继承。你必须使用except BaseException

然而,这是有原因的:

The exception inherits from BaseException instead of StandardError or Exception so that it is not accidentally caught by code that catches Exception.

以处理SystemExit的方式处理"真实"异常是很少见的。你最好用except SystemExit明确地捕捉系统出口。