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

Исключение ProgrammingError

Исключение ProgrammingError относится к группе DBAPIError и возникает при ошибках, допущенных программистом при написании SQL-кода или работе с объектами базы данных. К таким ошибкам относятся: обращение к несуществующей таблице или колонке, неверный синтаксис SQL, неправильное количество параметров в запросе. Исключение наследуется от DatabaseError и SQLAlchemyError.

Синтаксис

from sqlalchemy.exc import ProgrammingError try: # database operation pass except ProgrammingError as e: print(e)

Пример

Давайте попробуем выполнить запрос к несуществующей таблице users и поймаем исключение:

from sqlalchemy import create_engine, text from sqlalchemy.exc import ProgrammingError engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: try: conn.execute(text('SELECT * FROM users')) except ProgrammingError as e: print(type(e).__name__) print(e.orig)

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

"ProgrammingError" "no such table: users"

Пример

Давайте создадим таблицу articles и попробуем обратиться к несуществующей колонке:

from sqlalchemy import create_engine, text from sqlalchemy.exc import ProgrammingError engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) try: conn.execute(text('SELECT missing_column FROM articles')) except ProgrammingError as e: print(type(e).__name__) print(e.orig)

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

"ProgrammingError" "no such column: missing_column"

Пример

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

from sqlalchemy import create_engine, text from sqlalchemy.exc import SQLAlchemyError engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: try: conn.execute(text('INSERT INTO articles (title) VALUES (:title)'), {'title': 'article'}) except SQLAlchemyError as e: print(type(e).__name__) print(str(e.orig))

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

"ProgrammingError" "no such table: articles"

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

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