カスタムsys.excepthookを利用したいという状況があります。プログラムが例外をスローすると、sys.exceptフックが呼び出され、いくつかの処理が実行されます。
例:
import sys
def ehook(exctype, value, traceback):
t = 'Keys'
if exctype == AttributeError and value.args[0].split("'")[1] == t:
print "t %s" % (t,)
else:
sys.__excepthook__(exctype, value, traceback)
sys.excepthook = ehook
class Keys():
@staticmethod
def x():
print "this is Keys.x()"
if __name__ == "__main__":
Keys.x()
Keys.noexist()
print "I want to continue here and beyond..."
プログラムを終了させないように、excepthookでアクティブな例外をキャンセルする方法はありますか?