Python Glossary English

все Python 3sqlite3исключение

sqlite3.ProgrammingError

исключения

Исключение sqlite3 для ошибок программиста в работе с API: неверное число параметров запроса, обращение к уже закрытому Connection. Подкласс sqlite3.DatabaseError.

Синтаксис

sqlite3.ProgrammingError

Это всегда ошибка кода: параметров передали не столько, сколько знаков ? в запросе (классика — отдать голую строку вместо кортежа, тогда она разбирается посимвольно), обратились к Connection или Cursor уже после close(), либо тронули соединение из другого потока, чем создали (по умолчанию check_same_thread=True). Повторять запрос бессмысленно — в отличие от OperationalError, само по себе оно не пройдёт; перехват уместен разве что чтобы показать понятное сообщение, а чинить надо вызов.

Примеры

import sqlite3
print(issubclass(sqlite3.ProgrammingError, sqlite3.DatabaseError))  # → True
print(issubclass(sqlite3.ProgrammingError, sqlite3.OperationalError))  # → False
con = sqlite3.connect(':memory:'); con.execute('CREATE TABLE t(a, b)')
try: con.execute('INSERT INTO t VALUES (?, ?)', (1,))
except sqlite3.ProgrammingError as e: print(type(e).__name__)  # → ProgrammingError

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности