Yo quería crear mi propia clase de excepción Python, así:Problema subclasificar BaseException en Python
class MyException(BaseException):
def __init__(self, errno, address):
if errno == 10048:
mess = str(address) + ' is already in use'
else:
mess = 'Unable to open ' + str(address)
BaseException.__init__(mess)
pero cuando el programa llegó a la llamada a BaseException.__init__()
, Tengo este rastreo:
BaseException.__init__(mess)
TypeError: descriptor '__init__' requires a 'exceptions.BaseException' object but received a 'str'
Pensé que BaseException tomaría cualquier conjunto de argumentos. Además, ¿cómo se supone que debo pasar un objeto 'exceptions.BaseException' al constructor exceptions.BaseException?
Gracias. Esta no es la primera vez que olvido usar 'yo' en alguna parte; Estoy seguro de que no será el último. –
Es por eso que prefiero usar super() antes de llamar al método __init__ explícitamente. Si olvida el auto argumento a super(), obtiene un error inmediatamente. –
En Python 3 'super()' ya no requiere argumentos. – hop