>>>>> [EMAIL PROTECTED] (p) wrote: [Timer example snipped] >p> My question is, why exception is not raised correctly? Could be the >p> reason that (probably) timer is another thread and there is no >p> exception in the main thread?
yes, the doc of Timer says it is a subclass of Thread, and therefore runs in a new thread. By the way, your program isn't even correct Python, so how can it give the output you have written down? When I run a similar (but corrct python) program, I do get an exception, but it is in another thread, and therefore not caught. You can post a signal to the main thread, however, to catch the exception: def TimeoutHandler(): print '!' os.kill(0, signal.SIGUSR1) def handler(): raise Exception class Active: def __init__(self): signal.signal(signal.SIGUSR1, handler) timer = Timer(1, TimeoutHandler) etc. -- Piet van Oostrum <[EMAIL PROTECTED]> URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4] Private email: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list