我正在尝试以SystemExit
以下方式捕获异常:
try:
raise SystemExit
except Exception as exception:
print "success"
但是,它不起作用。
但是,当我像这样更改代码时,它确实起作用:
try:
raise SystemExit
except:
print "success"
据我所知,except Exception as exception
应该捕获任何异常。这也是这里描述的方式。为什么在这里对我不起作用?
如文档所述,SystemExit不会从Exception继承。您将不得不使用except BaseException
。
但是,这是有原因的:
异常继承自BaseException而不是StandardError或Exception,因此不会被捕获Exception的代码意外捕获。
想要以与处理SystemExit相同的方式处理“真实”异常是不寻常的。您最好通过明确捕获SystemExit except SystemExit
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句