Tôi có một vấn đề với Cython 0.17.1Tuyên truyền C++ ngoại lệ cho Cython - python ngoại lệ
chức năng My ném một std::runtime_error
nếu một tập tin không tồn tại, tôi muốn tuyên truyền ngoại lệ này ở một số cách để tôi Mã Cython.
void loadFile(const string &filename)
{
// some code, if filename doesn't exists
throw std::runtime_error(std::string("File doesn't exists"));
}
và từ Cython sau khi gói đúng của hàm:
try:
loadFile(myfilename)
except RuntimeError:
print "Can't load file"
nhưng ngoại lệ này luôn được bỏ qua, làm thế nào tôi có thể bắt C++ ngoại lệ từ Python?
Bạn có sử dụng [ 'trừ +' ] (http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html#exceptions) trong 'cdef' của bạn? – user4815162342
vâng, có lẽ tôi nên đăng một số mã khác ... – linello
Bạn có chắc chắn là ngoại lệ được ném vào bên C++ không? Bạn cũng có thể thử thay thế 'ngoại trừ RuntimeError' bằng' ngoại trừ ngoại lệ, e' và in 'e' để xem có thể một số ngoại lệ Python khác được nâng lên hay không. – user4815162342