說我有形式.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