python - 检查一个类是否是包的成员

标签 python class error-handling package mysql-connector

我正在使用 mysql.connector 模块。如果由于 connection.commit() 的结果而引发错误,即“执行操作”命令,我如何确定该错误的类是否是其“类包”的成员(如果这是正确的词)?
所以我有:

try:
    conn.commit()
except Exception as e:
    # this line works fine:
    # if type( e ) == mysql.connector.errors.DataError:
    # this doesn't:
    if type( e ) in mysql.connector.errors:
        # do some error-handling, logging, etc.
首先,我对 e 的线路测试很满意。是 mysql.connector.errors.DataError 的一个实例.我以一种特殊的方式处理它,因为在我的上下文中它不是一个“致命”错误。
但是刚刚出现另一个错误,这是另一个非 fatal error ,也需要以特殊方式处理,mysql.connector.errors.IntegrityError .
我想捕获/过滤“类包”中的所有错误mysql.connector.errors .我怎么做?

最佳答案

采用:

if issubclass(e, connector.errors.Error):
    # do error handling for mysql related errors
else:
    # do error handling for other errors

关于python - 检查一个类是否是包的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63675119/

相关文章:

python - 在支持 Multi-Tenancy 的 Django 中正确加载 Keras 模型

c++ - 如何修复给出 'declaration has no storage class or type specifier' 错误的派生类?

javascript - 我如何将静态函数的值发送到另一个对象?

java - 抽象类和子类中的静态变量初始化

error-handling - firebug 显示网络错误

python - 如何使用 for 循环将多个 .so 文件导入到 Python 中?

python - 为什么 for 循环不遍历我所有的 readlines?

python - models.py 中的 django python slug 变量

oop - 为什么 protected 和私有(private)属性可以由同一个类而不是同一个对象访问?

zend-framework - Zend Framework 应用程序 - 在生产模式下显示 404 错误页面/通用错误页面并在开发模式下显示异常