В первой половине (той, которая содержит три предложения except
) она вызывает те же самые исключения, которые она ловит (вы ловите исключения с ключевым словом except
), затем в обработчике исключений (код сразу после ключевого слова ; запускается при возникновении исключения или повышается ) добавляет каждое исключение в список.
Во второй половине он перебирает сохраненные исключения (те, которые сейчас в списке) и показывает некоторые их атрибуты.
Из этого упражнения вы, вероятно, должны в основном отбирать то, как вы ловите исключения, и только во вторую очередь тот факт, что Исключение является объектом, как и все в Python:
In [6]: KeyError.__class__
Out[6]: type
'type' - это класс классов в Python - это довольно странная черта языка, если вы этого не получите, вам не стоит беспокоиться об этом в ближайшее время. В любом случае, этот бит показывает, что исключением является класс.
In [7]: err = KeyError()
In [8]: err.__class__
Out[8]: KeyError
Здесь мы создаем экземпляр объекта KeyError, который происходит автоматически при возникновении исключения KeyError (err
в этом случае совпадает с e
в обработчиках исключений в вашем коде). Как видите, класс err
равен KeyError
, как и ожидалось.