Исключения

Исключения

@pyproglib

При анализе или исполнении кода иногда возникают ошибки или исключения. Например, это может произойти при попытке чтения файла, которого не существует. Хороший разработчик должен уметь ловить и обрабатывать их.

В Питоне определен главный класс BaseException, от которого наследуются все остальные классы ошибок. У него есть четыре прямых наследника:

  • SystemExit – произошел выход из программы.
  • KeyboardInterrupt – пользователь прервал выполнение программы (комбинация Ctrl+C).
  • GeneratorExit – завершена работа объекта generator.
  • Exception – родительский класс для пользовательских исключений.

От класса Exception наследуется больше десятка различных ошибок, которые может обработать программист. Вот лишь некоторые из них:

  • IOError – ошибка ввода-вывода, например, «файл не найден».
  • ImportError – ошибка импорта модуля.
  • IndexError – обращение к несуществующему индексу последовательности.
  • OSError – ошибка системы.
  • SyntaxError – синтаксическая ошибка.
  • TypeError – ошибка типа данных, например, функция вызывается с неподходящим по типу аргументом.
  • ZeroDivisionError – деление на ноль.

Чтобы поймать и обработать исключения, нужно использовать конструкцию try – except – finally.

В блоке try размещается код, который должен быть выполнен. Блок except дает возможность поймать и обработать нужные ошибки. При необходимости можно добавить еще инструкцию finally, которая выполнится в любом случае.


Report Page