相关疑难解决方法(0)

boost :: python导出自定义异常

我目前正在使用Boost.Python为Python编写C++扩展.此扩展中的函数可能会生成一个包含错误信息的异常(除了描述发生的事件的人类可读字符串之外).我希望我可以将这个异常导出到Python,这样我就能抓住它并用额外的信息做些什么.

例如:

import my_cpp_module
try:
    my_cpp_module.my_cpp_function()
except my_cpp_module.MyCPPException, e:
    print e.my_extra_data
Run Code Online (Sandbox Code Playgroud)

不幸的是,Boost.Python似乎将所有C++异常(都是其子类std::exception)转换为RuntimeError.我意识到Boost.Python允许一个人实现自定义异常转换,但是,需要使用PyErr_SetObject一个PyObject*(对于异常的类型)和一个PyObject*(对于异常的值) - 我都不知道如何从我的Boost中获取. Python类.也许有一种方法(这将是伟大的),我还没有找到.否则有人知道如何导出自定义C++异常,以便我可以在Python中捕获它吗?

c++ python exception boost-python

23
推荐指数
1
解决办法
7460
查看次数

Boost.Python自定义异常类

我正在使用Boost.Python实现一个Python扩展模块.该模块应该定义自己继承的自定义异常类Exception.我怎么做?

c++ python exception boost-python

14
推荐指数
1
解决办法
2878
查看次数

标签 统计

boost-python ×2

c++ ×2

exception ×2

python ×2