Python 和 MySQL - 处理错误
错误来源有很多。一些示例包括执行的 SQL 语句中的语法错误、连接失败或对已取消或完成的语句句柄调用 fetch 方法。
DB API 定义了每个数据库模块中必须存在的许多错误。下表列出了这些异常。
Sr.No. | 异常和说明 |
---|---|
1 | Warning 用于非致命问题。必须为 StandardError 子类。 |
2 | Error 错误的基类。必须为 StandardError 子类。 |
3 | InterfaceError 用于数据库模块中的错误,而不是数据库本身。必须为 Error 子类。 |
4 | DatabaseError 用于数据库中的错误。必须为 Error 子类。 |
5 | DataError DatabaseError 的子类,指数据中的错误。 |
6 | OperationalError DatabaseError 的子类,指诸如丢失与数据库的连接之类的错误。这些错误通常不在 Python 脚本编写者的控制范围内。 |
7 | IntegrityError DatabaseError 的子类,用于会破坏关系完整性的情况,例如唯一性约束或外键。 |
8 | InternalError DatabaseError 的子类,用于指代数据库模块内部的错误,例如游标不再处于活动状态。 |
9 | ProgrammingError DatabaseError 的子类,用于指代诸如错误的表名和其他可以安全归咎的错误你。 |
10 | NotSupportedError DatabaseError 的子类,指尝试调用不受支持的功能。 |
你的 Python 脚本应该处理这些错误,但在使用上述任何异常之前,请确保你的 MySQLdb 支持该异常。你可以通过阅读 DB API 2.0 规范获取有关它们的更多信息。