有什么理由可以让boost-python无法捕获在使用它帮助编写的扩展模块中抛出的异常并将其转换为python?相反,解释器与terminate called after throwing an instance of '<some_excpetion_class>'
崩溃。
我的扩展模块正在使用 CGAL 中的一些函数,它们动态链接到这些函数,并抛出异常。它还动态链接到boost_python共享库。我在Linux上。它是用'-std=c++11'
编写的,我更喜欢用clang
进行编译。
我的第一个想法是,这是在共享库边界上抛出异常的问题。但是,我做了我能想象到的一切来避免这个问题,这表明它与此无关:
有什么想法吗?
答案 0 :(得分:0)
找到原因,与boost-python和共享库无关:
CGAL代码从析构函数抛出,导致程序终止。另见:throwing exceptions out of a destructor。