Module (82%)
Section (13%)

Исключения

Python 3 определяет 63 встроенных исключения, и все они образуют древовидную иерархию, хотя дерево немного странное, поскольку его корень расположен на сверху.

Некоторые из встроенных исключений носят более общий характер (они включают в себя другие исключения), в то время как другие являются конкретными (они представляют только себя). Можно сказать, что чем ближе к корню находится исключение, тем более общим (абстрактным) оно является. В свою очередь, исключения, расположенные на концах ветвей (мы можем назвать их листьями), являются конкретными.

Посмотрите на рисунок:

Tree-shaped hierarchy of selected exceptions

Он показывает небольшой раздел полного дерева исключений. Давайте начнем рассматривать дерево с листа ZeroDivisionError.




Примечание:

  • ZeroDivisionError - это частный случай более общего класса исключений с именем ArithmeticError;
  • ArithmeticError - это частный случай более общего класса исключений с именем Exception;
  • Exception - это частный случай более общего класса с именем BaseException.

Мы можем описать это следующим образом (обратите внимание на направление стрелок - они всегда указывают на более общий объект):

BaseException

Exception

ArithmeticError

ZeroDivisionError


Мы собираемся показать Вам, как работает это обобщение. Давайте начнем с очень простого кода.