Я использую Python 2.5 и пытаюсь использовать самоопределяемый excepthook
в своей программе. В основной нити он отлично работает. Но в потоке, запущенном с помощью модуля потоковой передачи, вызывается обычный 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
в потоке?