SQLAlchemy异常捕捉
2021/8/6 2:06:24
本文主要是介绍SQLAlchemy异常捕捉,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们在使用SQLAlchemy模块进行数据操作过程,往往会出现一些错误,因此我们需要捕捉到这些错误,并进行一场处理。
例子如下:
from sqlalchemy.exc import SQLAlchemyError db = SQLAlchemy() def commit(): try: db.session.add(self.table) db.session.commit() except SQLAlchemyError as e: db.session.rollback() finally: db.session.close()
下面是sqlalchemy本身可能引发的错误列表,这些错误来自 help(sqlalchemy.exc) 和 help(sqlalchemy.orm.exc):
sqlalchemy.exc系列: ArgumentError----------------------------在提供无效或冲突的函数参数时引发。 CircularDependencyError------------------检测到循环依赖项时由拓扑排序引发。 CompileError-----------------------------在SQL编译期间发生错误时引发。 ConcurrentModificationError--------------同步修改数据发生错误时引发。 DBAPIError-------------------------------数据库操作执行失败时引发。 如果在执行SQL时发生错误引发操作 语句,该语句及其参数将在 statement和params属性中的异常对象。 包装的异常对象在orig属性中可用。 它的类型和属性是特定于DB-API实现的。 DataError包装DB-APIDataError。 DatabaseError----------------------------包装DB-APIDatabaseError。 DisconnectionError-----------------------在原始DB-API连接上检测到断开连接。 由PoolListener引发,以便主机池强制断开连接。 IdentifierError--------------------------当架构名称超过最大字符限制时引发 IntegrityError---------------------------包装DB-APIIntegrityError。 InterfaceError---------------------------包装DB-APIInterfaceError。 InternalError----------------------------包装DB-APIInternalError。 InvalidRequestError----------------------SQLAlchemy被要求做一些它不能做的事情。此错误通常对应于运行时状态错误。 NoReferenceError-------------------------由ForeignKey引发,表示无法解析引用。 NoReferencedColumnError------------------在找不到引用的Column时由ForeignKey引发。 NoReferencedTableError-------------------在找不到引用的Table时由ForeignKey引发。 NoSuchColumnError------------------------从RowProxy请求不存在的列。 NoSuchTableError-------------------------表不存在或对连接不可见。 NotSupportedError------------------------包装DB-APINotSupportedError。 OperationalError-------------------------包装DB-APIOperationalError。 ProgrammingError-------------------------包装DB--APIProgrammingError。 SADeprecationWarning---------------------每次使用不推荐的API时发布一次。 SAPendingDeprecationWarning--------------每次使用不推荐的API时发布一次。 SAWarning--------------------------------在运行时发出。 SQLAlchemyError--------------------------一般错误类。 SQLError---------------------------------数据库操作执行失败时引发。 TimeoutError-----------------------------当连接池在获取连接时超时时引发。 UnboundExecutionError--------------------尝试在没有数据库连接的情况下执行SQL。 UnmappedColumnError----------------------对未知列请求了映射操作。 sqlalchemy.orm.exc系列: FlushError-------------------------------后期修改表字段的时候,不会自动的映射到数据库中,需要重新映射,使用flask-migrate。 ConcurrentModificationError--------------行已在工作单元之外被修改。 FlushError-------------------------------在flush()期间检测到无效条件。 MultipleResultsFound---------------------需要一个数据库结果,但找到多个。 NoResultFound----------------------------需要数据库结果,但未找到。 ObjectDeletedError-----------------------Arefresh()操作无法重新检索对象的行。 UnmappedClassError-----------------------为未知类请求了映射操作。 UnmappedColumnError----------------------对未知列请求了映射操作。 UnmappedError----------------------------待办事项 UnmappedInstanceError--------------------为未知实例请求了映射操作。
结束!
这篇关于SQLAlchemy异常捕捉的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享