python raise exception
Все встроенные исключения в языке 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. Пример: