Python Glossary English

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

sqlite3.DatabaseError

исключения

Ошибки, связанные с самой базой данных; базовый класс специализированных исключений sqlite3 (OperationalError, IntegrityError и др.), подкласс sqlite3.Error.

Синтаксис

raise sqlite3.DatabaseError

Ловить обычно стоит либо sqlite3.Error — он покрывает всё, включая InterfaceError, то есть ошибки использования самого модуля, а не базы, — либо DatabaseError, когда важны именно проблемы на стороне БД. Разбирать конкретную причину удобнее не по классу исключения, а по атрибутам sqlite_errorcode и sqlite_errorname: начиная с Python 3.11 они есть у исключений, пришедших из самой библиотеки SQLite (у ошибок модуля вроде ProgrammingError их нет).

Примеры

import sqlite3
print(issubclass(sqlite3.IntegrityError, sqlite3.DatabaseError))  # → True
try:
    sqlite3.connect(':memory:').execute('SELECT bad syntax here')
except sqlite3.DatabaseError as e:
    print(type(e).__name__)   # → OperationalError

См. также

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