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

