C ++没有捕获异常,导致python终止

时间:2016-06-07 17:09:04

标签: python c++ exception-handling boost-python

我有一个抛出异常的函数,我想在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解释器应该是透明的。

0 个答案:

没有答案