Peter Otten <__pete...@web.de> wrote: > You could try to shadow the exception class with None: > >>>> ZeroDivisionError = None >>>> try: > ... 1/0 > ... except ZeroDivisionError: > ... print "caught" > ... > Traceback (most recent call last): > File "<stdin>", line 2, in <module> > ZeroDivisionError: integer division or modulo by zero >
This works in Python 2.x but will break in Python 3. None is not a valid exception specification and Python 3 will check for that and complain. >>> ZeroDivisionError = None >>> try: ... 1/0 ... except ZeroDivisionError: ... print('caught') ... Traceback (most recent call last): File "<stdin>", line 2, in <module> ZeroDivisionError: int division or modulo by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 3, in <module> TypeError: catching classes that do not inherit from BaseException is not allowed >>> A better solution is to use an empty tuple as that is a valid exception specification so will work in both Python 2.x and 3.x: >>> ZeroDivisionError = () >>> try: ... 1/0 ... except ZeroDivisionError: ... print('caught') ... Traceback (most recent call last): File "<stdin>", line 2, in <module> ZeroDivisionError: int division or modulo by zero -- Duncan Booth http://kupuguy.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list