Python Glossary English

все 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Сообщить о неточности