备案 控制台
学习
实践
活动
专区
工具
TVP
写文章

如何避免在Python 2.4中意外捕获KeyboardInterrupt和SystemExit?

  • 回答 ( 1 )
  • 关注 ( 0 )
  • 查看 ( 937 )

在Python脚本中,有很多情况下键盘中断(Ctrl-C)由于 except 代码中的句子而无法终止进程:

try:
    foo()
except:
    bar()

Python 2.5或更高版本中的标准解决方案是捕获 Exception 而不是使用 except 子句:

try:
    foo()
except Exception:
    bar()

这样做是因为,像Python 2.5的, KeyboardInterrupt SystemExit 继承 BaseException ,没有 Exception 。但是,一些安装仍在运行Python 2.4。在Python 2.5之前的版本中如何处理这个问题?

成品冻K 成品冻K 提问于
酒当歌 趁年轻,多折腾 回答于
已采纳

根据 Python文档 ,在2.5以前的Python版本中处理这个问题的正确方法是:

try:
    foo()
except (KeyboardInterrupt, SystemExit):