Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Классы встроенных исключений в Python

Классы встроенных исключений в Python

Все встроенные исключения в языке Python представлены в виде классов. Иерархия встроенных классов исключений показана в листинге ниже.

Иерархия встроенных классов исключений

BaseException
    GeneratorExit (в Python 2.6 и выше)
    KeyboardInterrupt
    SystemExit
    Exception
        GeneratorExit (в Python 2.5)
        StopIteration
        Warning
            BytesWarning (в Python 2.6 и выше)
            DeprecationWarning, FutureWarning, ImportWarning
            PendingDeprecationWarning, RuntimeWarning, SyntaxWarning
            UnicodeWarning, UserWarning
        StandardError
            ArithmeticError
                FloatingPointError, OverflowError, ZeroDivisionError
            AssertionError
            AttributeError
            BufferError (в Python 2.6)
            EnvironmentError
                IOError
                OSError
                    WindowsError
            EOFError
            ImportError
            LookupError
                IndexError, KeyError
            MemoryError
            NameError
                UnboundLocalError
            ReferenceError
            RuntimeError
                NotImplementedError
            SyntaxError
                IndentationError
                    TabError
            SystemError
            TypeError
            ValueError
                UnicodeError
                    UnicodeDecodeError, UnicodeEncodeError
                    UnicodeTranslateError

Основное преимущество использования классов для обработки исключений заключается в возможности указания базового класса для перехвата всех исключений соответствующих классов-потомков. Например, для перехвата деления на ноль мы использовали класс ZeroDivisionError. Если вместо этого класса указать базовый класс ArithmeticError, то будут перехватываться исключения классов FloatingPointError, OverflowError и ZeroDivisionError. Пример:

try:
    x = 1 / 0                       # Ошибка: деление на 0
except ArithmeticError:             # Указываем базовый класс
    print "Обработали деление на 0"

Рассмотрим основные классы встроенных исключений:

  • BaseException - начиная с Python 2.5, является классом самого верхнего уровня
  • Exception - именно этот класс, а не BaseException, необходимо наследовать при создании пользовательских классов исключений
  • AssertionError - возбуждается инструкцией assert
  • AttributeError - попытка обращения к несуществующему атрибуту объекта
  • EOFError - возбуждается функция input() и raw_input() при достижении конца файла
  • IOError - ошибка доступа к файлу
  • ImportError - невозможно подключить модуль или пакет
  • IndentationError - неправильно расставлены отступы в программе
  • IndexError - указанный индекс не существует в последовательности
  • KeyError - указанный ключ не существует в словаре
  • KeyboardInterrupt - нажата комбинация клавиш Ctrl+C
  • NameError - попытка обращения к идентификатору до его определения
  • StopInteration - возбуждается метод next() как сигнал об окончании интерации
  • SyntaxError - синтаксическая ошибка
  • TypeError - тип объекта не соответствует ожидаемому
  • UnboundLocalError - внутри функции переменной присваивается значение после обращения к одноименной глобальной переменной
  • UnicodeDecodeError - ошибка преобразования обычной строки в Unicode строку
  • UnicodeEncodeError - ошибка преобразования Unicode строки в обычную строку
  • ValueError - переданный параметр не соответствует ожидаемому значению
  • ZeroDivisionError - попытка деления на ноль

Python очень мощный язык программирования на котором можно писать обычные арифметические программы до серьезных сайтов и онлайн игр. Посмотрите игру playgaminatorslots.com/book-ra-deluxe.html часть которой была написана на языке программирования Python. Можете попробовать поиграть в нее в бесплатном режиме, если вы поймете алгоритм ее работы может даже сумеете на ней неплохо заработать.