我有一个抛出异常的函数,我想在C ++中处理它:
#include <boost/python.hpp>
#include <iostream>
using namespace std;
void yay( ) {
cout << "thowing exception" << endl;
try {
throw;
}catch(...) {
cout << "Exception caught" << endl;
}
}
BOOST_PYTHON_MODULE(libyay){
using namespace boost::python;
def("yay", yay);
}
我正在使用boost.python创建python绑定。当我在python中调用函数yay()时,我希望捕获异常并执行正常继续。这是我的python测试脚本:
#!/usr/bin/python
import sys
sys.path.append('./build')
import libyay
libyay.yay()
但是,我得到以下输出
thowing exception
terminate called without an active exception
Aborted (core dumped)
任何人都知道发生了什么事吗?我的理解是,由于异常是在c ++中捕获的,因此它对python解释器应该是透明的。