boost-python 无法捕获和翻译 c++ 异常

boost-python unable to catch and translate c++ exception

什么原因导致 boost-python 无法捕获使用它的帮助编写的扩展模块中抛出的异常并将其转换为 python?相反,解释器因 terminate called after throwing an instance of '<some_excpetion_class>'.

而崩溃

我的扩展模块正在使用 CGAL 中的一些函数,它动态链接到这些函数并抛出异常。它还动态链接到 boost_python 共享库。我在 linux。它是用 '-std=c++11' 编写的,我更喜欢用 clang.

编译

我的第一个想法是这是一个跨共享库边界抛出异常的问题。但是,我想尽一切办法规避这个问题,提示与此无关:

有什么想法吗?

找到原因,与boost-python和共享库无关:

CGAL 代码从析构函数中抛出,这导致程序终止。另见:throwing exceptions out of a destructor.