1

我正在 Python 3.1.2 中运行基于控制台的应用程序。我希望应用程序在提示符处捕获 Ctrl-C 并根据上下文进行处理。我按预期得到了 KeyboardInterrupt,但出乎意料的是,当我去写一条警告消息时,我有时会再次看到它。追溯如下。你们聪明人有什么想法吗?


回溯(最近一次通话最后):
  文件“E:\Dropbox\git\vocabulary\v.py”,第 58 行,在 main
    命令,args = c.getcommand()
  文件“E:\Dropbox\git\vocabulary\console.py”,第 81 行,在 getcommand 中
    命令,*args = 输入(提示).split()
键盘中断

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次通话最后):
  文件“E:\Dropbox\git\vocabulary\v.py”,第 125 行,在
    主要的()
  文件“E:\Dropbox\git\vocabulary\v.py”,第 71 行,在 main
    print("\n使用 'quit' 退出应用程序。")
  文件“E:\Dropbox\git\vocabulary\utilities.py”,第 191 行,写入
    self.stream.write(数据)
键盘中断
4

1 回答 1

0

我无法重现这个。

def foo():
    try:
        x = 0
        while True:
            x += 1        
    except KeyboardInterrupt:
        print(x)
while True:
    foo()

工作得很好,并按预期捕获 CTRL-C。

于 2010-12-21T08:04:42.117 回答