У цьому відношенні Python досить схожий на Java. Але виняток Python слід порівнювати з Java Throwable.
Оскільки Throwables бувають різних видів - Error, RuntimeException та (перевірений) виняток - так само і Python (хоча жодних перевірених винятків).
Що стосується мови, то помилка є винятковою, тому ієрархія успадкування не є дивною.
Мені не дуже подобається назва Виняток. Винятки використовуються не лише для виняткових обставин (наприклад, помилок), а й для того, щоб просто вийти з потоку управління. Тому що це те, що робить виняток; він вискакує з нормального потоку управління до позначеної точки. Трохи схожий на goto, але більш вишуканий.
Тим не менш, кожного разу, коли у вас виникає ситуація, коли не вдається знайти підходящого значення повернення, ви, як правило, використовуєте виняток. І в Python, і в Java.
Warning. Перегляньте мою відповідь .