_spitFIRE schrieb: > assume a scenario, where there is a class that for doing some work, > spawns lot of threads. > > class X: > def __init__(self): > # Spawns some threads to > # do some work > > now, assuming that at least one of the threads encounters a problem > while doing work and throws an exception. Would I be able to handle > that error in the caller class? When I try to do this, I see that the > errors thrown by the threads never cascade to this caller :(
Exactly. Because they are different threads - the very essence of them is each of them having their own stacks. Depending on what you do in the main-thread, you can do something like this: class Worker(Thread): def __init__(self): ... self.running = False ... self.start() def run(self): self.running = True try: ... # work finally: self.running = False In the main-thread, you test for each thread if it's still running. while True: time.sleep(.1) for t in threads: if not t.running: print "Not running anymor: %r" % t Diez -- http://mail.python.org/mailman/listinfo/python-list