1

Python 3.1.2 でコンソール ベースのアプリを実行しています。アプリがプロンプトで Ctrl-C をトラップし、コンテキストに従って処理するようにします。期待どおりに KeyboardInterrupt を取得していますが、予想外に、警告メッセージを書きに行ったときに再び表示されることがあります。トレースバックは以下です。賢い人たちからの考えはありますか?


トレースバック (最新の呼び出しが最後):
  メインのファイル「E:\Dropbox\git\vocabulary\v.py」、58行目
    コマンド、引数 = c.getcommand()
  getcommand のファイル「E:\Dropbox\git\vocabulary\console.py」の 81 行目
    command, *args = input(prompt).split()
キーボード割り込み

上記の例外の処理中に、別の例外が発生しました:

トレースバック (最新の呼び出しが最後):
  ファイル「E:\Dropbox\git\vocabulary\v.py」の 125 行目
    主要()
  メインのファイル「E:\Dropbox\git\vocabulary\v.py」、71行目
    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 に答える