Python Glossary English

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

sqlite3.Error

исключения

Базовый класс всех исключений модуля sqlite3 (подкласс Exception): один except sqlite3.Error перехватывает любую ошибку работы с БД.

Синтаксис

raise sqlite3.Error

Ловить sqlite3.Error разумно на границе программы — там, где вы решаете, что показать пользователю; внутри логики лучше конкретика, иначе опечатка в SQL (OperationalError) и нарушение UNIQUE (IntegrityError) обработаются одинаково. Начиная с Python 3.11 у исключения, пришедшего из самой SQLite, есть sqlite_errorcode и sqlite_errorname — код и имя ошибки прямо от движка, разбирать текст сообщения не нужно. И помните: перехват исключения сам по себе не откатывает транзакцию, нужен con.rollback() или блок with con (он коммитит или откатывает, но соединение не закрывает).

Примеры

import sqlite3
print(issubclass(sqlite3.DatabaseError, sqlite3.Error))  # → True
try:
    sqlite3.connect(':memory:').execute('SELECT * FROM nope')
except sqlite3.Error as e:
    print(type(e).__name__)   # → OperationalError

См. также

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