все Python 3sqlite3исключение
sqlite3.Warning
исключения
Исключение DB-API для предупреждений базы. Сам модуль sqlite3 его сейчас не возбуждает — класс оставлен для совместимости со стандартом PEP 249.
Синтаксис
sqlite3.Warning
Несмотря на имя, это не предупреждение: sqlite3.Warning наследует Exception, а не встроенный Warning, поэтому warnings.filterwarnings на него не действует, а except Warning его не поймает. До Python 3.10 включительно его поднимал execute() с двумя SQL-командами в строке; с 3.11 там ProgrammingError, так что старые except sqlite3.Warning больше не срабатывают. В 3.14 класс не устарел, но и не возбуждается модулем.
Примеры
import sqlite3
print(issubclass(sqlite3.Warning, Exception)) # → True
print(issubclass(sqlite3.Warning, Warning)) # → False — это не встроенный Warning
print(issubclass(sqlite3.Warning, sqlite3.Error)) # → False
# Python 3.11+
import sqlite3
conn = sqlite3.connect(':memory:')
try:
conn.execute('SELECT 1; SELECT 2')
except sqlite3.Warning:
print('Warning')
except sqlite3.ProgrammingError as e:
print(type(e).__name__) # → ProgrammingError — с 3.11, раньше был Warning
conn.close()
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности