2012-11-01 13 views
7

私は私の関数は、ファイルが存在しない場合、私は私にいくつかの方法で、この例外を伝播したいstd::runtime_errorをスローCython 0.17.1伝播C++ cythonする例外 - pythonの例外

に問題があります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++の例外をキャッチすることができますか?

+0

あなたが '' +除き、[使用しましたを参照してください、except +として、あなたの関数を宣言あなたは約C++の例外処理をお読みください](http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html#exceptions)をあなたの 'cdef'に入れますか? – user4815162342

+0

はい、おそらくもっとコードを投稿してください... – linello

+0

C++側で例外がスローされたことは間違いありませんか?他のPython例外が発生しているかどうかを調べるには、例外を除いて 'Exception exceptions'を' RuntimeError'を置き換え、 'e'を出力することもできます。 – user4815162342

答えて