在 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 之前的版本中如何处理这个问题?
(我将自己回答这个问题,但把它放在这里以便搜索它的人可以找到解决方案。)