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

Исключение OperationalError

Исключение OperationalError представляет собой подкласс исключения DBAPIError. Оно возникает, когда драйвер базы данных сообщает об ошибке, которая не является ошибкой программирования или целостности данных. Примерами могут служить невозможность подключения к серверу, внезапный разрыв соединения, блокировка таблицы или исчерпание дискового пространства. Данное исключение обычно не связано с неправильным синтаксисом SQL-запроса.

Синтаксис

from sqlalchemy.exc import OperationalError try: # database operation pass except OperationalError as e: # handle error pass

Пример

Давайте попробуем подключиться к несуществующему файлу базы данных SQLite, чтобы вызвать исключение OperationalError:

from sqlalchemy import create_engine from sqlalchemy.exc import OperationalError engine = create_engine('sqlite:///nonexistent_folder/test.db') try: with engine.connect() as conn: pass except OperationalError as e: print(f"OperationalError caught: {e.orig}")

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

"OperationalError caught: unable to open database file"

Пример

Рассмотрим ситуацию, когда выполняется запрос к несуществующей таблице. Это также может привести к исключению OperationalError, если СУБД сообщает об ошибке на уровне операций, а не компиляции:

from sqlalchemy import create_engine, text from sqlalchemy.exc import OperationalError engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: try: conn.execute(text("SELECT * FROM missing_table")) except OperationalError as e: print(f"OperationalError: {e.orig}")

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

"OperationalError: no such table: missing_table"

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

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