私はPython 2.5を使用していて、自己定義のexcepthook
を自分のプログラムに使用しようとしています。メインスレッドでは完全に正常に動作します。しかし、スレッドモジュールで開始されたスレッドでは、通常excepthook
が呼び出されます。'sys.excepthook'とスレッディング
これは、問題を示す例です。コメントをコメント解除すると、目的の動作が示されます。
import threading, sys
def myexcepthook(type, value, tb):
print 'myexcepthook'
class A(threading.Thread, object):
def __init__(self):
threading.Thread.__init__(self, verbose=True)
# raise Exception('in main')
self.start()
def run(self):
print 'A'
raise Exception('in thread')
if __name__ == "__main__":
sys.excepthook = myexcepthook
A()
スレッド内で自分自身のexcepthook
を使用するにはどうすればよいですか?
おかげ - 第三の回避策は完璧に動作します! – Sebastian