РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
692 of 711 menu

Исключение DisconnectionError

Исключение DisconnectionError вызывается, когда пул соединений обнаруживает, что соединение с базой данных было разорвано. Это может произойти из-за сетевого сбоя, перезагрузки сервера базы данных, превышения тайм-аута или других причин. Исключение наследуется от SQLAlchemyError и обычно обрабатывается механизмом пула для пересоздания соединения.

Синтаксис

from sqlalchemy.exc import DisconnectionError raise DisconnectionError(statement=None, params=None, orig=None)

Пример

Давайте импортируем исключение и проверим его наследование:

from sqlalchemy.exc import DisconnectionError, SQLAlchemyError print(issubclass(DisconnectionError, SQLAlchemyError))

Результат выполнения кода:

True

Пример

Давайте создадим исключение вручную и посмотрим его строковое представление:

from sqlalchemy.exc import DisconnectionError exc = DisconnectionError(statement='SELECT 1', params=None, orig=Exception('connection lost')) print(exc)

Результат выполнения кода:

"(builtins.Exception) connection lost\n[SQL: SELECT 1]"

Пример

Давайте перехватим исключение при выполнении запроса к базе данных:

from sqlalchemy import create_engine, text from sqlalchemy.exc import DisconnectionError engine = create_engine('sqlite:///:memory:') try: with engine.connect() as conn: conn.execute(text('SELECT 1')) except DisconnectionError as exc: print('connection lost:', exc) else: print('connection is fine')

Результат выполнения кода:

"connection is fine"

Пример

Давайте посмотрим, как DisconnectionError связан с другими исключениями SQLAlchemy:

<+python+> from sqlalchemy.exc import DisconnectionError, DBAPIError, SQLAlchemyError print(issubclass(DisconnectionError, DBAPIError)) print(issubclass(DisconnectionError, SQLAlchemyError)) print(DisconnectionError.__mro__) <-python+>

Результат выполнения кода:

False True (<class 'sqlalchemy.exc.DisconnectionError'>, <class 'sqlalchemy.exc.SQLAlchemyError'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>)

Смотрите также

  • исключение SQLAlchemyError,
    которое является базовым для всех ошибок SQLAlchemy
  • исключение DBAPIError,
    которое оборачивает ошибки драйвера базы данных
  • исключение OperationalError,
    которое сигнализирует о проблемах работы СУБД
  • исключение InterfaceError,
    которое возникает при ошибках интерфейса драйвера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить