В этом отношении Python очень похож на Java. Но Python Exception следует сравнить с Java Throwable.
Поскольку Throwables бывают всевозможных разновидностей - Error, RuntimeException и (проверено) Exception - то же самое и с Python (хотя никаких проверенных исключений).
Что касается языка, ошибка является исключительной, так что иерархия наследования не является странной.
Хотя мне не очень нравится название Exception. Исключения используются не только для исключительных обстоятельств (например, ошибок, надеюсь), но и для того, чтобы просто выйти из потока управления. Потому что это то, что делает исключение; он переходит из обычного потока управления в отмеченную точку. Немного похоже на goto, но более изысканно.
Тем не менее, каждый раз, когда у вас возникает ситуация, в которой невозможно найти подходящее возвращаемое значение, вы склонны использовать исключение. И в Python, и в Java.
Warning
. Пожалуйста, посмотрите мой ответ .