私は最近pythonで始まりました。私はそこに、キーボード割り込み処理で遊んで、私はこの振る舞いに出くわしたのPythonで、なぜシグナルハンドリングが "try except"の前後で行われるのか、例外に違いがあります
import signal,sys
def handleInt(sign,no):
print "interrupted"
signal.signal(signal.SIGINT,handleInt) # exception raised is IOError
try:
sys.stdin.read(1)
except IOError:
print "io interrupt"
が、私はCtrl + Cを押すと、私は、try-除く
import signal,sys
def handleInt(sign,no):
print "interrupted"
try:
sys.stdin.read(1)
except KeyboardInterrupt:
print "keyboard interrupt"
signal.signal(signal.SIGINT,handleInt) # exception raised is KeyboardInterrupt
後にシグナル処理を変更した場合ました2つのケースでの例外の違いです。なぜこの動作ですか?
コードをよく理解できるようにこれを正しくインデントしてください。 –
私はこのコードをpython lintでチェックしました。インデントの問題は表示されません。 – karyboy
2番目のスニペットでは、シグナルハンドラはtry-exceptブロックの後にインストールされます。したがって、私はそれが効果がないと思う。 – nymk