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