все Python 3sqlite3исключение
sqlite3.InterfaceError
исключения
Ошибка неправильного использования низкоуровневого C API SQLite; подкласс sqlite3.Error, обычно указывает на баг в самом модуле sqlite3, а не в базе данных.
Синтаксис
sqlite3.InterfaceError
Практический вывод один: except sqlite3.DatabaseError его НЕ поймает — InterfaceError стоит на дереве рядом с DatabaseError, общий предок у них только sqlite3.Error, поэтому «ловим вообще всё про БД» пишется именно через Error. Отдельной обработки это исключение обычно не заслуживает: проблема не в вашем SQL и не в данных, а в неправильном обращении к C API, так что переписывать запрос бесполезно.
Примеры
import sqlite3
print(issubclass(sqlite3.InterfaceError, sqlite3.Error)) # → True
print(issubclass(sqlite3.InterfaceError, sqlite3.DatabaseError)) # → False
print(sqlite3.InterfaceError.__name__) # → InterfaceError
try: raise sqlite3.InterfaceError('мисюз C API')
except sqlite3.Error as e: print(type(e).__name__) # → InterfaceError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности