Here is an exercise from Learning Python that I wrote myself: import sys import traceback
class MyError: pass def oops(): raise MyError() def safe(func, *args): try: apply(func, args) except: traceback.print_exc() print 'Got', sys.exc_type, sys.exc_value safe(oops) And here is the output: Traceback (most recent call last): File "C:/Python24/oops.py", line 11, in safe apply(func, args) File "C:/Python24/oops.py", line 7, in oops raise MyError() MyError: <__main__.MyError instance at 0x00B475A8> Got Queue.Empty Why does it show Queue.Empty as the values for sys.exc_type and sys.exc_value? I guess I can somewhat understand Empty, because the instance is basically nothing. But why does it say Queue instead of MyError? The sample in the book shows "Got hello world", because hello is the error name and world is the extra data. But mine doesn't seem to work that way. (They are also using a string exception in the book, instead of a class.) Thanks. -- http://mail.python.org/mailman/listinfo/python-list