“Python数据库API规范v2.0”文档(pep249)为数据库驱动程序抛出的与数据库错误相关的异常指定了DatabaseError基类。你知道吗
但据我所知,DB-API在Python中没有抽象实现。在这里,每个驱动程序都有自己单独的异常集,只是名称相同,这真的是这样吗?你知道吗
看看sqlite3模块的源代码,似乎确实如此!据我所知,C代码[初始化pysqlite\u DatabaseError](https://github.com/python/cpython/blob/c30098c8c6014f3340a369a31df9c74bdbacc269/Modules/_sqlite/module.c#L378)如下所示:
if (!(pysqlite_DatabaseError = PyErr_NewException(MODULE_NAME ".DatabaseError", pysqlite_Error, NULL))) {
goto error;
}
…似乎是从pysqlite_Error
继承的,而PyExc_Exception
又从PyExc_Exception
继承,我假设它对应于核心Python自己的Exception
。你知道吗
我是不是漏了什么?这似乎是一个不幸的错误设计,它可能会从内部使用任意数据库驱动程序的API中冒出错误。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐