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