我正在使用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 2009-10-29 12:42:11