Release: 1.4.25 | Release Date: September 22, 2021

SQLAlchemy 1.4 Documentation

核心异常

与SqlAlchemy一起使用的异常。

基本异常类是 SQLAlchemyError . 由于DBAPI异常而引发的异常都是 DBAPIError .

exception sqlalchemy.exc.AmbiguousForeignKeysError(*arg, **kw)

在联接期间两个可选择项之间可以找到多个外键匹配时引发。

exception sqlalchemy.exc.ArgumentError(*arg, **kw)

在提供无效或冲突的函数参数时引发。

此错误通常对应于构造时间状态错误。

exception sqlalchemy.exc.AwaitRequired(*arg, **kw)

如果在需要异步操作时没有等待异步操作,则异步小绿程序派生会引发错误。

exception sqlalchemy.exc.CircularDependencyError(message, cycles, edges, msg=None, code=None)

当检测到循环依赖项时,由拓扑排序引发。

出现此错误的情况有两种:

exception sqlalchemy.exc.CompileError(*arg, **kw)

在SQL编译过程中发生错误时引发

exception sqlalchemy.exc.DBAPIError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

在执行数据库操作失败时引发。

包装数据库操作基础的db-api引发的异常。标准DB-API异常类型的驱动程序特定实现由匹配的sqlAlchemy子类型包装。 DBAPIError 如果可能的话。DB API Error 类型映射到 DBAPIError 在sqlacalchemy中,否则名称是相同的。请注意,不能保证不同的DB-API实现会针对任何给定的错误条件引发相同的异常类型。

DBAPIError 特征 StatementError.statementStatementError.params 属性,为在发出SQL语句的上下文中引发错误的典型情况提供有关有问题的语句细节的上下文。

包装的异常对象在 StatementError.orig 属性。它的类型和属性是特定于DB-API实现的。

exception sqlalchemy.exc.DataError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API数据错误。

exception sqlalchemy.exc.DatabaseError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API数据库错误。

exception sqlalchemy.exc.DisconnectionError(*arg, **kw)

在原始DB-API连接上检测到断开连接。

连接池在内部引发并使用此错误。它可以由 PoolEvents.checkout() 事件,以便主机池强制重试;在池放弃并引发之前,将连续三次捕获异常 InvalidRequestError 关于连接尝试。

Object Name Description

DontWrapMixin

当应用于用户定义的异常类时,它不会包装在 StatementError 如果错误是在执行语句的过程中发出的。

HasDescriptionCode

将“code”添加为属性并将“_code_str”添加为方法的帮助器

class sqlalchemy.exc.DontWrapMixin

当应用于用户定义的异常类时,它不会包装在 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!")
class sqlalchemy.exc.HasDescriptionCode(*arg, **kw)

将“code”添加为属性并将“_code_str”添加为方法的帮助器

exception sqlalchemy.exc.IdentifierError(*arg, **kw)

架构名称超出最大字符限制时引发

exception sqlalchemy.exc.IntegrityError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API完整性错误。

exception sqlalchemy.exc.InterfaceError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API接口错误。

exception sqlalchemy.exc.InternalError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API内部错误。

exception sqlalchemy.exc.InvalidRequestError(*arg, **kw)

SQLAlchemy被要求做一些它不能做的事情。

此错误通常对应于运行时状态错误。

exception sqlalchemy.exc.InvalidatePoolError(*arg, **kw)

当连接池应使所有过时的连接失效时引发。

一个子类 DisconnectionError 这表示在连接上遇到的断开连接情况可能意味着整个池应该无效,因为数据库已经重新启动。

此异常的处理方式与 DisconnectionError 允许三次尝试在放弃前重新连接。

1.2 新版功能.

exception sqlalchemy.exc.MissingGreenlet(*arg, **kw)

异步小绿程序引发的错误 await_ 如果在不在greenlet派生上下文内时调用。

exception sqlalchemy.exc.MovedIn20Warning(*arg, **kw)

RemovedIn20警告的子类型,指示仅移动的API。

exception sqlalchemy.exc.MultipleResultsFound(*arg, **kw)

需要一个数据库结果,但找到了多个。

在 1.4 版更改: 此异常现在是 sqlalchemy.exc 核心模块,从ORM中移出。符号仍可从导入 sqlalchemy.orm.exc .

exception sqlalchemy.exc.NoForeignKeysError(*arg, **kw)

在联接期间两个可选择项之间不能定位外键时引发。

exception sqlalchemy.exc.NoInspectionAvailable(*arg, **kw)

传递给 sqlalchemy.inspection.inspect() 没有生成供检查的上下文。

exception sqlalchemy.exc.NoReferenceError(*arg, **kw)

由提高 ForeignKey 以指示无法解析引用。

exception sqlalchemy.exc.NoReferencedColumnError(message, tname, cname)

由提高 ForeignKey 当被推荐人 Column 找不到。

exception sqlalchemy.exc.NoReferencedTableError(message, tname)

由提高 ForeignKey 当被推荐人 Table 找不到。

exception sqlalchemy.exc.NoResultFound(*arg, **kw)

需要数据库结果,但未找到任何结果。

在 1.4 版更改: 此异常现在是 sqlalchemy.exc 核心模块,从ORM中移出。符号仍可从导入 sqlalchemy.orm.exc .

exception sqlalchemy.exc.NoSuchColumnError(*arg, **kw)

不存在的列是从 Row .

exception sqlalchemy.exc.NoSuchModuleError(*arg, **kw)

在找不到特定名称的动态加载模块(通常是数据库方言)时引发。

exception sqlalchemy.exc.NoSuchTableError(*arg, **kw)

表不存在或对连接不可见。

exception sqlalchemy.exc.NotSupportedError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API NotSupportedError。

exception sqlalchemy.exc.ObjectNotExecutableError(target)

当将对象传递给不能作为SQL执行的.execute()时引发。

1.1 新版功能.

exception sqlalchemy.exc.OperationalError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API操作错误。

exception sqlalchemy.exc.PendingRollbackError(*arg, **kw)

事务失败,需要回滚才能继续。

1.4 新版功能.

exception sqlalchemy.exc.ProgrammingError(statement, params, orig, hide_parameters=False, connection_invalidated=False, code=None, ismulti=None)

包装DB-API编程错误。

exception sqlalchemy.exc.RemovedIn20Warning(*arg, **kw)

为使用SQLAlchemy 2.0中特别不推荐使用的API而发布。

attribute sqlalchemy.exc.RemovedIn20Warning.deprecated_since = '1.4'

指示开始引发此否决警告的版本

exception sqlalchemy.exc.ResourceClosedError(*arg, **kw)

从处于关闭状态的连接、光标或其他对象请求了操作。

exception sqlalchemy.exc.SADeprecationWarning(*arg, **kw)

为使用不推荐的API而发布。

attribute sqlalchemy.exc.SADeprecationWarning.deprecated_since = None

指示开始引发此否决警告的版本

exception sqlalchemy.exc.SAPendingDeprecationWarning

类似的警告 SADeprecationWarning ,此警告在现代版本的SQLAlchemy中不使用。

attribute sqlalchemy.exc.SAPendingDeprecationWarning.deprecated_since = None

指示开始引发此否决警告的版本

exception sqlalchemy.exc.SAWarning(*arg, **kw)

运行时发布。

exception sqlalchemy.exc.SQLAlchemyError(*arg, **kw)

一般错误类。

exception sqlalchemy.exc.StatementError(message, statement, params, orig, hide_parameters=False, code=None, ismulti=None)

执行SQL语句时出错。

StatementError 包装执行过程中引发的异常和功能 statementparams 提供有关有问题的语句细节的上下文的属性。

包装的异常对象在 orig 属性。

attribute sqlalchemy.exc.StatementError.orig = None

DBAPI异常对象。

attribute sqlalchemy.exc.StatementError.params = None

发生此异常时使用的参数列表。

attribute sqlalchemy.exc.StatementError.statement = None

发生此异常时正在调用的字符串SQL语句。

exception sqlalchemy.exc.TimeoutError(*arg, **kw)

当连接池在获取连接时超时时引发。

exception sqlalchemy.exc.UnboundExecutionError(*arg, **kw)

试图在没有数据库连接的情况下执行SQL。

exception sqlalchemy.exc.UnreflectableTableError(*arg, **kw)

表存在,但由于某种原因无法反映。

1.2 新版功能.

exception sqlalchemy.exc.UnsupportedCompilationError(compiler, element_type, message=None)

当给定的编译器不支持某个操作时引发。

Previous: 运行时检查API Next: 核心内构件