Шаг 151.
Основы языка Python.
Обработка исключений. Классы встроенных исключений

    На этом шаге мы остановимся на классах встроенных исключений.

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

BaseException
SystemExit
KeyboardInterrupt
GeneratorExit 
Exception
    StopIteration 
    ArithmeticError
        FloatingPointError, OverflowError, ZeroDivisionError
    AssertionError 
    AttributeError
    BufferError
    EOFError
    ImportError 
    LookupError
        IndexError, KeyError 
    MemoryError 
    NameError
        UnboundLocalError
    OSError
        BlockingIOError 
        ChildProcessError 
        ConnectionError
            BrokenPipeError, ConnectionAbortedError, ConnectionRefusedError, 
            ConnectionResetError 
        FileExistsError 
        FileNotFoundError 
        InterruptedError 
        IsADirectoryError 
        NotADirectoryError 
        PermissionError 
        ProcessLookupError
        TimeoutError
    ReferenceError
    RuntimeError
        NotImplementedError
    SyntaxError
        IndentationError
            TabError
    SystemError 
    TypeError
    VaiueError
        UnicodeError
            UnicodeDecodeError, UnicodeEncodeError
            UnicodeTranslateError
    Warning
        BytesWarning, DeprecationWarning, FutureWarning, ImportWarning,
        PendingDeprecationWarning, ResourceWarning, RuntimeWarning,
        SyntaxWarning, UnicodeWarning, UserWarning

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

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

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

    На следующем шаге мы рассмотрим пользовательские исключения.




Предыдущий шаг Содержание Следующий шаг