Any way to turn off exception handling? (debugging)
Peter Otten
__peter__ at web.de
Fri Feb 12 08:53:02 EST 2010
Duncan Booth wrote:
> Peter Otten <__peter__ at web.de> wrote:
>
>> You could try to shadow the exception class with None:
> 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.
> 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:
Out of curiosity I tried a custom __subclasscheck__, but didn't get it to
work in 3.1:
$ cat instance_check.py
class ZeroDivisionError(BaseException):
class __metaclass__(type):
def __subclasscheck__(self, other):
print "performing subclass check --> %s" % catch
return catch
if __name__ == "__main__":
for catch in [True, False]:
print "catch = %s" % catch
try:
1/0
except ZeroDivisionError:
print "caught"
$ python2.6 instance_check.py
catch = True
performing subclass check --> True
caught
catch = False
performing subclass check --> False
Traceback (most recent call last):
File "instance_check.py", line 11, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero
$
Peter
More information about the Python-list
mailing list