Python全局异常处理


问题内容

我想在KeyboardInterrupt全球范围内赶上并很好地应对。我不想将我的整个脚本包含在一个巨大的try / except语句中。有什么办法吗?


问题答案:

sys.excepthook如果您确实不想使用,可以更改try/except

import sys
def my_except_hook(exctype, value, traceback):
    if exctype == KeyboardInterrupt:
        print "Handler code goes here"
    else:
        sys.__excepthook__(exctype, value, traceback)
sys.excepthook = my_except_hook