Can';捕获SystemExit异常Python

Can';捕获SystemExit异常Python,python,exception,exception-handling,Python,Exception,Exception Handling,我试图以以下方式捕获SystemExit异常: try: raise SystemExit except Exception as exception: print "success" 但是,它不起作用 但是,当我这样更改代码时,它确实起作用: try: raise SystemExit except: print "success" 据我所知,Exception As Exception应该捕获任何异常。这也是如何描述的。为什么在这里对我不起作用?因为,Sy

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

try:
    raise SystemExit
except Exception as exception:
    print "success"
但是,它不起作用

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

try:
    raise SystemExit
except:
    print "success"
据我所知,
Exception As Exception
应该捕获任何异常。这也是如何描述的。为什么在这里对我不起作用?

因为,SystemExit不会从Exception继承。您必须使用除BaseException之外的

然而,这是有原因的:

异常继承自BaseException,而不是StandardError或exception,以便捕获异常的代码不会意外捕获它


以与处理SystemExit相同的方式处理“真实”异常是不常见的。除了SystemExit

Perfect外,您最好使用
明确捕获SystemExit。谢谢文档异常层次结构中对此进行了很好的说明: