Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 传播c++;cython的异常-python异常_C++_Python_Exception_Try Catch_Cython - Fatal编程技术网

C++ 传播c++;cython的异常-python异常

C++ 传播c++;cython的异常-python异常,c++,python,exception,try-catch,cython,C++,Python,Exception,Try Catch,Cython,我对Cython 0.17.1有问题 我的函数抛出一个std::runtime\u错误如果文件不存在,我想以某种方式将此异常传播到我的Cython代码中 void loadFile(const string &filename) { // some code, if filename doesn't exists throw std::runtime_error( std::string("File doesn't exists" ) ); } 在函数正确包装后,从C

我对Cython 0.17.1有问题

我的函数抛出一个
std::runtime\u错误
如果文件不存在,我想以某种方式将此异常传播到我的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++异常?< /P> < P>你是用外部声明了异常处理吗?您应该阅读C++异常处理:

基本上,您需要执行以下操作:

cdef extern from "some_file.h":
    cdef int foo() except +

声明你的函数为“代码>”,除了+< />代码>,参见< /p>你在<代码> CDEF中使用吗?是的,也许我应该发布更多代码……你绝对肯定在C++方面抛出异常吗?您还可以尝试将
except RuntimeError
替换为
Exception,e
并打印
e
,以查看是否引发了其他Python异常。是的,我的函数声明了“except+”,但我仍然无法检测到异常。