我是一名Python开发者,正在编写以下类似的代码:
当我尝试中断循环时,我基本上需要按住 Control+C 足够长的时间,以取消对于
有没有办法防止函数捕获 KeyboardInterrupt,以便我可以自己捕获它?我能想到的唯一方法是通过创建一个单独的线程来调用该函数,但那似乎有些过分。
编辑:我检查了有问题的代码(我不能轻易更改),它实际上使用了裸的
import sys
try:
for x in large_list:
function_that_catches_KeyboardInterrupt(x)
except KeyboardInterrupt:
print "Canceled!"
sys.exit(1)
当我尝试中断循环时,我基本上需要按住 Control+C 足够长的时间,以取消对于
large-list
所有元素的函数的每次调用,只有这样我的程序才会退出。有没有办法防止函数捕获 KeyboardInterrupt,以便我可以自己捕获它?我能想到的唯一方法是通过创建一个单独的线程来调用该函数,但那似乎有些过分。
编辑:我检查了有问题的代码(我不能轻易更改),它实际上使用了裸的
except:
,因此即使是 sys.exit(1)
也被视为 SystemExit
异常。如何从裸的 except:
块中退出并退出我的程序?