Документация на Python состояния:
Исключения обычно должны быть получены из класса Exception, прямо или косвенно.
слово 'typically'
оставляет меня в неоднозначном состоянии.
рассмотрим код:
class good(Exception): pass
class bad(object): pass
Heaven = good()
Hell = bad()
>>> raise Heaven
Traceback (most recent call last):
File "<pyshell#163>", line 1, in <module>
raise Heaven
good
>>> raise Hell
Traceback (most recent call last):
File "<pyshell#171>", line 1, in <module>
raise Hell
TypeError: exceptions must be classes or instances, not bad
поэтому, читая документы python, я должен заменить 'typically'
на ''
?
что если у меня есть иерархия классов, которая не имеет ничего общего с классом Exception, и я хочу "поднять" объекты, принадлежащие иерархии?
Я всегда могу вызвать исключение с аргументом:
raise Exception, Hell
Мне это кажется немного неудобным
Что такого особенного в классе Exception (EDIT: или BaseException), что могут быть подняты только члены его семейства?