Классы встроенных исключений в Python
Обработка исключений » Python для начинающих exception python, python raise exception, исключения 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. Можете попробовать поиграть в нее в бесплатном режиме, если вы поймете алгоритм ее работы может даже сумеете на ней неплохо заработать.