说我有形式.so
的Python模块,它包含了这样的事情:如何捕捉用C编写的python模块的运行时错误?
static PyObject* f(PyObject* _1, PyObject* _2) {
int a = 0;
a = 1/a;
return NULL;
}
运行Python会崩溃之后。命令行给出Floating point exception: 8
。
而且我也看到了这一点:
这是一个bug或者是有可能赶不改变这个错误并重新编译.so
文件?
对于源自C代码的错误,您必须使用C的设施。 –
相关:http://stackoverflow.com/questions/3286448/calling-a-python-method-from-cc-and-extracting-its-return-value –
添加到@ivan_pozdeev,当你写C扩展时,它是_your_工作来创造Python的异常提升。在调用非Python API时,您是唯一具有创建异常所需信息的人。 – ShadowRanger