我有一個問題,用Cython 0.17.1傳播C++異常用Cython - Python異常
我的函數拋出一個std::runtime_error
如果文件不存在,我想以某種方式來傳播這個例外我Cython代碼。
void loadFile(const string &filename)
{
// some code, if filename doesn't exists
throw std::runtime_error(std::string("File doesn't exists"));
}
,並從用Cython功能的右後環繞:
try:
loadFile(myfilename)
except RuntimeError:
print "Can't load file"
但這種例外總是被忽略,我如何能趕上從Python的C++異常?
你使用['除了+' (http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html#exceptions)在'cdef'? – user4815162342
是的,也許我應該張貼更多的代碼... – linello
你真的確認了異常的C++側拋出?你也可以嘗試用'except RuntimeError'替換'Exception,e'和print'e'來查看是否引發了其他Python異常。 – user4815162342