Перейти к основному содержимому

5.02. Список ошибок и исключений

Разработчику Архитектору

Список ошибок и исключений

В Python все встроенные исключения находятся в модуле builtins. Для получения полного списка можно выполнить команду:

import builtins
print(dir(builtins))

Этот список включает не только исключения, но и другие встроенные объекты (например, True, False, None, int, str и т.д.). Чтобы выделить именно типы ошибок (исключения), нужно отфильтровать элементы, имена которых заканчиваются на Error или Warning.


Список встроенных исключений (ошибок) в Python 3.12+:

Основные базовые классы:

  • BaseException — корневой класс для всех исключений.
  • Exception — базовый класс для большинства пользовательских и встроенных исключений.

Исключения, наследующие Exception:

  • ArithmeticError
    • FloatingPointError
    • OverflowError
    • ZeroDivisionError
  • AssertionError
  • AttributeError
  • BufferError
  • EOFError
  • ImportError
    • ModuleNotFoundError
  • 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
    • RecursionError
  • StopIteration
  • SyntaxError
    • IndentationError
      • TabError
  • SystemError
  • TypeError
  • ValueError
    • UnicodeError
      • UnicodeDecodeError
      • UnicodeEncodeError
      • UnicodeTranslateError
  • WindowsError (только на Windows, устаревшее в новых версиях, заменено на OSError)

Предупреждения (Warnings):

  • Warning
    • UserWarning
    • DeprecationWarning
    • PendingDeprecationWarning
    • SyntaxWarning
    • RuntimeWarning
    • FutureWarning
    • ImportWarning
    • UnicodeWarning
    • BytesWarning
    • ResourceWarning

Примечания:

  • Некоторые исключения, такие как GeneratorExit, KeyboardInterrupt, SystemExit, наследуются непосредственно от BaseException, а не от Exception. Их обычно не перехватывают в общих блоках except Exception, так как они сигнализируют о завершении программы или прерывании с клавиатуры.
  • В современных версиях Python (3.10+) структура исключений стабильна, но могут добавляться новые подклассы (например, ModuleNotFoundError был добавлен в Python 3.6).
  • Для получения точного списка в вашей версии Python используйте фильтрацию:
import builtins

errors = [name for name in dir(builtins) if name.endswith('Error') or name.endswith('Warning')]
for err in sorted(errors):
print(err)

Это обеспечит актуальность списка для вашей среды исполнения.