В таких языках, как C ++, вы можете вызывать любой объект, а не только исключения. Python более ограничен. Если вы попробуете:
raise 1
Вы получаете:
Traceback (most recent call last):
...
TypeError: exceptions must be old-style classes or derived from BaseException, not int
В модели программирования Python вы обычно можете использовать класс вместо экземпляра (это удобно для быстрого создания уникальных экземпляров, просто определите класс). Поэтому неудивительно, что вы можете создать класс исключения вместо экземпляра исключения.
Однако, как сказал Игнасио, это устарело.
Также кое-что, что не является прямым вопросом:
Вы также можете увидеть повышение в одиночку в некотором коде. Без какого-либо объекта класса или чего-либо. Он используется в обработчиках исключений, чтобы повторно вызвать текущее исключение и сохранит начальную трассировку.