【发布时间】:2010-05-21 19:01:00
【问题描述】:
我们有一个在 C++ 中定义的接口(抽象类,所有函数都是纯虚拟的),它将在 Python 中扩展。为了克服跨语言多态性问题,我们计划使用SWIG directors。我已经阅读了如何在 Python 代码 here、here、here 甚至在 SO 中捕获 C++ 代码引发的异常。
这相当简单,我预计在处理我们的库自身的异常时不会出现问题。我想知道但在文档中似乎找不到的是如何让我们的扩展 C++ 接口的 Python 实现以一种使 C++ 代码可见的方式抛出这些 C++ 异常。
我们可以在 *.i 文件中创建小函数,这样每个函数都会抛出我们的异常:
void throw_myException(){ throw MyException; }
但我想知道它将如何与 Python 代码交互。
任何人都有从 Python 代码中抛出 C++ 异常的经验吗?
【问题讨论】:
标签: c++ python exception-handling swig