¿Qué pasa con el siguiente código (en Python 2.7.1):excepción de error debe derivar de BaseException incluso cuando lo hace (Python 2.7)
class TestFailed(BaseException):
def __new__(self, m):
self.message = m
def __str__(self):
return self.message
try:
raise TestFailed('Oops')
except TestFailed as x:
print x
Cuando corro, me sale:
Traceback (most recent call last):
File "x.py", line 9, in <module>
raise TestFailed('Oops')
TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
Pero me parece que TestFailed
deriva de BaseException
.
Para otras personas que no pueden entender por qué están recibiendo este error: comprobar para asegurarse de que no accidentalmente haces 'MiExcepción def (Excepción): pass' en lugar de la clase' requerido MiExcepción (Excepción): pase'. Error fácil de perder. –