将嵌入的Python异常传播到C++

6
如果我有一个带有嵌入式Python函数的C ++代码,即它使用Python的C API调用Python解释器,那么如何使Python异常传播到C ++级别?
注意:这不是逆问题(关于将C ++扩展异常传播到Python解释器)。

根据您的需求,您可以直接抛出Python异常的类名。或者您是在询问如何从C++中访问Python调用中的异常。 - amwinter
1
Python抛出的异常包含有信息性的消息,我希望以与纯Python在控制台中打印它们相同的方式打印它们。 - Will
等等,你是在问如何打印格式化的回溯信息吗?还是只需要异常本身?我认为使用Py_Print和异常的PyObject*应该可以做到后者。 - amwinter
无论哪个 - 我只是不清楚如何首先获取对异常对象的引用。 - Will
1个回答

1

1
其实,我现在在想这是否有问题。如果你正在使用Py_Main或PyRun_*,很可能无法使用PyErr_*来访问异常信息。 - amwinter
我认为OP的意思是“如何使用Python异常中的信息抛出C++异常?”至少,我也是通过尝试找到确切的方法才来到这里的。 - Átila Neves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接