KeyboardInterrupt が起きた際の対応方法について、少し調べる機会がありましたので、KeyboardInterruptをcatchするやり方をメモしておきます。
KeyboardInterruptとは
python でプログラム実行時に、Ctrl + Cを入力すると、ユーザ自身が実行しているプログラムを停止することができます。この停止の処理を行なっているのが、KeyboardInterrupt 例外になります。
例えば、下記のプログラムを実行してみてください。
try:
input = raw_input()
except KeyboardInterrupt, err:
print 'exception KeyboardInterrupt'
else:
print 'finished'
上記を実行して、Ctrl + Cを入力すると、例外が発生しますので、except KeyboardInterrupt でcatchしています。そのため、exception KeyboardInterrupt と出力されたのが確認できるかと思います。
KeyboardInterruptをcatchする
上述でも軽く触れましたが、Ctrl + C で発火するKeyboardInterruptは、意図的にキャッチすることができます。ループ文をコーディングした際にも下記のようなかたちでキャッチすることができます。
try:
while (i == 0):
.......................................................
.......................................................
.......................................................
except KeyboardInterrupt:
# Ctrl-C が押された際に、実行する処理を記載します
.......................................................
.......................................................
.......................................................
例外を上記のようにキャッチしてあげることができます。簡単ですね。