Paul Sijben wrote: > All, > > in a worker thread setup that communicates via queues is it possible to > catch exceptions raised by the worker executed, put them in an object > and send them over the queue to another thread where the exception is > raised in that scope? > > considering that an exception is an object I feel it ought to be > possible, however I do not see how to go about it. > > does anyone have a pointer towards the solution?
Just raise the exception object found in the queue. Only make sure it _is_ an exception, as you can raise everything. So in your queue-putting-code you might consider discriminating between the two cases, like this: while True: try: result = 1, work() except: result = 2, sys.exc_info()[1] queue.put(result) ------- while True: kind, result = queue.get() if kind == 1: do(result) elif kind == 2: raise result Diez -- http://mail.python.org/mailman/listinfo/python-list