尝试后,sys.exit无法正常工作:

尝试后,sys.exit无法正常工作:,第1张

尝试后,sys.exit无法正常工作:

sys.exit
通过引发
SystemExit
异常来工作。由于您只有一个裸露的例外,因此您的
SystemExit
异常会被捕获和抑制。

这就是为什么您不应该使用裸子句的原因之一。至少要抓住

Exception

try:    sys.exit()except Exception:    pass

由于

SystemExit
继承
Exception
1,因此不会被捕获通常,如果您不知道如何处理异常,则永远不要捕获异常
。甚至捕获
Exception
几乎总是比您想要的更广泛。


最后,如果您发现自己处在不得不处理别人代码的情况下,并且除了无法更改以外, 他们
几乎没有其他代码,可以

os._exit
用来终止当前进程而无需提高
SystemExit
。这通常是一个坏主意,但是只能在最恶劣的情况下使用2。

1

SystemExit
并显式地
KeyboardInterrupt
继承,
baseException
这样当有人捕捉时它们 不会
被捕捉
Exception

2希望我已经足够清楚地说明了最后一段旨在提供信息-我不建议使用;-)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5663462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存