如何在C扩展中创建自定义Python异常类型?

Bas*_*evs 11 c python exception python-c-api

我在C中编写Python模块.我需要报告内置Python异常无法描述的错误.因此,我希望抛出我自己的类型的例外.问题是,Python策略是从BaseException类派生所有异常.我知道如何创建派生类型对象(分配给tp_base memeber),但我不知道如何获取对BaseException类型对象的引用.PyExc_BaseException是对PyObject的引用,表示类,而不是类型对象.

如何从C代码中抛出自定义Python异常?

Sve*_*ach 5

在C代码中创建新异常类型的最简单方法是调用PyErr_NewException.

  • 如何将成员添加到结果类的对象?我想在错误对象中存储错误代码。 (2认同)