为什么不像以下代码一样捕获CTRL-C?
MAXVAL = 10000 STEP_INTERVAL = 10 for i in range(1, MAXVAL, STEP_INTERVAL): try: print str(i) except KeyboardInterrupt: break print "done"
我的期望是 - 如果在程序运行时按下CTRL-C,KeyboardInterrupt
则应该离开循环.它不是.
对我做错的任何帮助?
听起来这个程序是在时间控制-c被击中的情况下完成的,但是你的操作系统还没有完成显示所有的输出..
代码流程如下:
for
从列表中获取新对象(由...生成range
)并设置i
为它
try
print
回去吧 1
如果在第1部分中按CTRL-C,它就在try
/ 之外except
,因此它不会捕获异常.
试试这个:
MaxVal = 10000 StepInterval = 10 try: for i in range(1, MaxVal, StepInterval): print i except KeyboardInterrupt: pass print "done"