Основные исключения

Исключения, используемые в SQLAlchemy.

Базовым классом исключений является SQLAlchemyError. Исключения, возникающие в результате исключений DBAPI, являются подклассами DBAPIError.

exception sqlalchemy.exc.AmbiguousForeignKeysError

Возникает, когда между двумя selectables во время объединения может находиться более одного совпадения внешнего ключа.

exception sqlalchemy.exc.ArgumentError

Возникает при предоставлении недопустимого или противоречивого аргумента функции.

Эта ошибка обычно соответствует ошибкам состояния времени строительства.

exception sqlalchemy.exc.AwaitRequired

Ошибка, вызванная асинхронным гринлетом spawn, если не было ожиданий асинхронной операции, когда она требовалась.

exception sqlalchemy.exc.Base20DeprecationWarning

Выдается для использования API, специально устаревших или унаследованных в SQLAlchemy 2.0.

attribute sqlalchemy.exc.Base20DeprecationWarning.deprecated_since: Optional[str] = '1.4'

Указывает версию, в которой начало появляться это предупреждение об устаревании

exception sqlalchemy.exc.CircularDependencyError

Возникает в топологических сортировках при обнаружении круговой зависимости.

Существует два сценария возникновения этой ошибки:

method sqlalchemy.exc.CircularDependencyError.__init__(message: str, cycles: Any, edges: Any, msg: Optional[str] = None, code: Optional[str] = None)
exception sqlalchemy.exc.CompileError

Возникает при возникновении ошибки во время компиляции SQL

exception sqlalchemy.exc.ConstraintColumnNotFoundError

возникает, когда ограничение ссылается на строковое имя столбца, которого нет в таблице, на которую накладывается ограничение.

Добавлено в версии 2.0.

exception sqlalchemy.exc.DBAPIError

Возникает при неудачном выполнении операции с базой данных.

Обертывает исключения, вызванные DB-API, лежащим в основе операции с базой данных. Специфические для драйвера реализации стандартных типов исключений DB-API обертываются соответствующими подтипами DBAPIError SQLAlchemy, когда это возможно. Тип Error в DB-API соответствует DBAPIError в SQLAlchemy, в остальном имена идентичны. Обратите внимание, что нет гарантии, что различные реализации DB-API будут вызывать один и тот же тип исключения для любого заданного состояния ошибки.

DBAPIError имеет атрибуты StatementError.statement и StatementError.params, которые предоставляют контекст относительно специфики оператора, в котором возникла проблема, для типичного случая, когда ошибка возникла в контексте выполнения SQL-оператора.

Обернутый объект исключения доступен в атрибуте StatementError.orig. Его тип и свойства зависят от реализации DB-API.

method sqlalchemy.exc.DBAPIError.__init__(statement: Optional[str], params: Optional[_AnyExecuteParams], orig: BaseException, hide_parameters: bool = False, connection_invalidated: bool = False, code: Optional[str] = None, ismulti: Optional[bool] = None)
exception sqlalchemy.exc.DataError

Обертывает ошибку DB-API DataError.

exception sqlalchemy.exc.DatabaseError

Обертывает ошибку DB-API DatabaseError.

exception sqlalchemy.exc.DisconnectionError

Обнаружено разъединение на необработанном соединении DB-API.

Эта ошибка возникает и потребляется внутри пула соединений. Она может быть вызвана событием PoolEvents.checkout(), чтобы пул хоста заставил повторить попытку; исключение будет поймано три раза подряд, прежде чем пул сдастся и вызовет InvalidRequestError относительно попытки соединения.

Object Name Description

DontWrapMixin

Класс-миксин, который, будучи примененным к пользовательскому классу Exception, не будет обернут внутрь StatementError, если ошибка выдается в процессе выполнения оператора.

HasDescriptionCode

помощник, который добавляет „code“ в качестве атрибута и „_code_str“ в качестве метода

class sqlalchemy.exc.DontWrapMixin

Класс-миксин, который, будучи примененным к пользовательскому классу Exception, не будет обернут внутрь StatementError, если ошибка выдается в процессе выполнения оператора.

Например:

from sqlalchemy.exc import DontWrapMixin

class MyCustomException(Exception, DontWrapMixin):
    pass

class MySpecialType(TypeDecorator):
    impl = String

    def process_bind_param(self, value, dialect):
        if value == 'invalid':
            raise MyCustomException("invalid!")
exception sqlalchemy.exc.DuplicateColumnError

в таблицу добавляется колонка, которая заменяет другую колонку, без соответствующих параметров, позволяющих это сделать.

Добавлено в версии 2.0.0b4.

class sqlalchemy.exc.HasDescriptionCode

помощник, который добавляет „code“ в качестве атрибута и „_code_str“ в качестве метода

exception sqlalchemy.exc.IdentifierError

Возникает, когда имя схемы превышает максимальный лимит символов

exception sqlalchemy.exc.IllegalStateChangeError

Объект, отслеживающий состояние, столкнулся с каким-либо незаконным изменением состояния.

Добавлено в версии 2.0.

exception sqlalchemy.exc.IntegrityError

Обертывает ошибку целостности DB-API IntegrityError.

exception sqlalchemy.exc.InterfaceError

Обертывает ошибку DB-API InterfaceError.

exception sqlalchemy.exc.InternalError

Обертывает ошибку DB-API InternalError.

exception sqlalchemy.exc.InvalidRequestError

SQLAlchemy попросили сделать то, что она не может сделать.

Эта ошибка обычно соответствует ошибкам состояния во время выполнения.

exception sqlalchemy.exc.InvalidatePoolError

Возникает, когда пул соединений должен аннулировать все устаревшие соединения.

Подкласс DisconnectionError, который указывает, что ситуация разъединения, возникшая при соединении, вероятно, означает, что весь пул должен быть аннулирован, поскольку база данных была перезапущена.

Это исключение будет обработано так же, как и DisconnectionError, разрешая три попытки повторного подключения, прежде чем сдаться.

Добавлено в версии 1.2.

exception sqlalchemy.exc.LegacyAPIWarning

указывает на API, который находится в статусе «legacy» (устаревший), то есть давно устаревший.

exception sqlalchemy.exc.MissingGreenlet

Ошибка, вызванная асинхронным гринлетом await_, если вызов происходит не внутри контекста гринлета spawn.

exception sqlalchemy.exc.MovedIn20Warning

Подтип RemovedIn20Warning для указания API, который только переместился.

exception sqlalchemy.exc.MultipleResultsFound

Требовался один результат базы данных, но было найдено более одного.

Изменено в версии 1.4: Это исключение теперь является частью модуля sqlalchemy.exc в Core, перенесенного из ORM. Символ остается импортируемым из sqlalchemy.orm.exc.

exception sqlalchemy.exc.NoForeignKeysError

Возникает, когда между двумя selectables во время объединения не может быть внешних ключей.

exception sqlalchemy.exc.NoInspectionAvailable

Предмет, переданный в sqlalchemy.inspection.inspect(), не дает никакого контекста для проверки.

exception sqlalchemy.exc.NoReferenceError

Вызывается командой ForeignKey для указания на то, что ссылка не может быть разрешена.

exception sqlalchemy.exc.NoReferencedColumnError

Вызывается ForeignKey, когда связанный Column не может быть найден.

method sqlalchemy.exc.NoReferencedColumnError.__init__(message: str, tname: str, cname: str)
exception sqlalchemy.exc.NoReferencedTableError

Вызывается ForeignKey, когда связанный Table не может быть найден.

method sqlalchemy.exc.NoReferencedTableError.__init__(message: str, tname: str)
exception sqlalchemy.exc.NoResultFound

Требовалось получить результат из базы данных, но он не был найден.

Изменено в версии 1.4: Это исключение теперь является частью модуля sqlalchemy.exc в Core, перенесенного из ORM. Символ остается импортируемым из sqlalchemy.orm.exc.

exception sqlalchemy.exc.NoSuchColumnError

Несуществующий столбец запрашивается из Row.

exception sqlalchemy.exc.NoSuchModuleError

Возникает, когда динамически загружаемый модуль (обычно диалект базы данных) с определенным именем не может быть найден.

exception sqlalchemy.exc.NoSuchTableError

Таблица не существует или не видна для соединения.

exception sqlalchemy.exc.NotSupportedError

Обертывает ошибку DB-API NotSupportedError.

exception sqlalchemy.exc.ObjectNotExecutableError

Возникает, когда в .execute() передается объект, который не может быть выполнен как SQL.

method sqlalchemy.exc.ObjectNotExecutableError.__init__(target: Any)
exception sqlalchemy.exc.OperationalError

Обертывает ошибку DB-API OperationalError.

exception sqlalchemy.exc.PendingRollbackError

Транзакция завершилась неудачно и должна быть откатана перед продолжением.

Добавлено в версии 1.4.

exception sqlalchemy.exc.ProgrammingError

Обертывает ошибку программирования DB-API ProgrammingError.

exception sqlalchemy.exc.ResourceClosedError

Операция была запрошена у соединения, курсора или другого объекта, который находится в закрытом состоянии.

exception sqlalchemy.exc.SADeprecationWarning

Выдается за использование устаревших API.

attribute sqlalchemy.exc.SADeprecationWarning.deprecated_since: Optional[str] = None

Указывает версию, в которой начало появляться это предупреждение об устаревании

exception sqlalchemy.exc.SAPendingDeprecationWarning

Аналогичное предупреждению SADeprecationWarning, это предупреждение не используется в современных версиях SQLAlchemy.

attribute sqlalchemy.exc.SAPendingDeprecationWarning.deprecated_since: Optional[str] = None

Указывает версию, в которой начало появляться это предупреждение об устаревании

exception sqlalchemy.exc.SATestSuiteWarning

предупреждение о состоянии, обнаруженном во время тестирования, которое не является фатальным

В настоящее время находится вне SAWarning, чтобы мы могли обойти такие инструменты, как Alembic, которые делают неправильные вещи с предупреждениями.

exception sqlalchemy.exc.SAWarning

Выдается во время выполнения.

exception sqlalchemy.exc.SQLAlchemyError

Общий класс ошибок.

exception sqlalchemy.exc.StatementError

Во время выполнения оператора SQL произошла ошибка.

StatementError оборачивает исключение, возникшее во время выполнения, и имеет атрибуты statement и params, которые предоставляют контекст относительно специфики оператора, в котором возникла проблема.

Обернутый объект исключения доступен в атрибуте orig.

method sqlalchemy.exc.StatementError.__init__(message: str, statement: Optional[str], params: Optional[_AnyExecuteParams], orig: Optional[BaseException], hide_parameters: bool = False, code: Optional[str] = None, ismulti: Optional[bool] = None)
attribute sqlalchemy.exc.StatementError.ismulti: Optional[bool] = None

мультипараметр, передаваемый в repr_params(). Ни один не имеет значения.

attribute sqlalchemy.exc.StatementError.orig: Optional[BaseException] = None

Первоначальное исключение, которое было брошено.

attribute sqlalchemy.exc.StatementError.params: Optional[_AnyExecuteParams] = None

Список параметров, используемый в момент возникновения данного исключения.

attribute sqlalchemy.exc.StatementError.statement: Optional[str] = None

Строковый SQL-оператор, который был вызван, когда возникло это исключение.

exception sqlalchemy.exc.TimeoutError

Возникает, когда пул соединений задерживается при получении соединения.

exception sqlalchemy.exc.UnboundExecutionError

Была предпринята попытка SQL без соединения с базой данных для выполнения.

exception sqlalchemy.exc.UnreflectableTableError

Таблица существует, но по какой-то причине не может быть отражена.

Добавлено в версии 1.2.

exception sqlalchemy.exc.UnsupportedCompilationError

Возникает, когда операция не поддерживается данным компилятором.

method sqlalchemy.exc.UnsupportedCompilationError.__init__(compiler: Union[Compiled, TypeCompiler], element_type: Type[ClauseElement], message: Optional[str] = None)
Вернуться на верх