0

私はすべての例外をキャッチしたいのですが、誰か、e.g. KeyboardInterrupt,

以下は私のコードの一部です:

try:
    num = 70
    while 1:
        print 'hello %d' % num
        sleep(0.1)
        num += 1
        a = 1/(num - 80)
except not KeyboardInterrupt:
        print 'ctrl c'
        save(num)

それは動作しません。

4

2 に答える 2

2

SystemExitandをキャッチしないことにも満足している場合はStopIteration、そのまま実行してください。

except Exception:

それは「高レベル」の例外のみをキャッチするためです。それでも、これは悪い習慣と見なされます。例外をキャッチする際は、常に具体的にしてください。

于 2013-07-02T09:17:45.483 に答える
1

一般的なケースの前にキャッチしてリレイズする

try:
    #stuff
except KeyboardInterrupt:
    raise #rethrow to a higher handler
except:
    #everything else
于 2013-07-02T09:17:40.393 に答える