首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIG:从Python到C++抛出异常

SWIG:从Python到C++抛出异常
EN

Stack Overflow用户
提问于 2010-05-22 03:01:01
回答 1查看 652关注 0票数 0

我们已经在C++中定义了一个接口(抽象类,所有函数都是纯虚拟的),它将在Python语言中扩展。为了克服跨语言的多态性问题,我们计划使用SWIG directors。我已经阅读了如何在我们的C++代码hereherehere甚至在SO上捕获从Python代码抛出的异常。

这是相当直接的,我不希望在处理我们的库自己的异常时出现问题。我想知道但在文档中似乎找不到的是,如何让我们的扩展C++接口的Python实现抛出那些C++异常,使它们对C++代码可见。

我们可以在*.i文件中创建小函数,这样每个函数都会抛出我们的异常:

代码语言:javascript
复制
void throw_myException(){ throw MyException; }

但我想知道它将如何与Python代码交互。

谁有从Python代码中抛出C++异常的经验?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-22 05:53:34

( C )Python是用C编写的。似乎“通过”解释器抛出异常是不好的。

我的感觉是,从API返回某种可以通过工厂创建异常的令牌可能是最安全的。

这基本上就是我们在这里所做的,尽管我们使用C#而不是Python来生成“错误代码”数据,然后将其转换到C++层,然后发送到异常工厂。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档