Посмотрите сообщение в блоге от Sara Ford: http://blogs.msdn.com/saraford/archive/2004/11/15/257953.aspx
class MyException(Exception):
def __str__(self):
return repr(self.args[0])
e = MyException('asdf')
print e
Это ваш класс в стиле Python2.6. Новое исключение принимает произвольное количество аргументов.
Да, он устарел в Python 2.6, потому что он больше не используется в Python 3.0.
Класс BaseException не позволяет сохранять сообщения об ошибках. Вам придется реализовать это самостоятельно. Вы можете сделать это с помощью подкласса, который использует свойство для хранения сообщения.
class MyException(Exception):
def _get_message(self):
return self._message
def _set_message(self, message):
self._message = message
message = property(_get_message, _set_message)
Надеюсь, это поможет