引发'boost :: python :: error_already_set'实例后调用boost python错误消息:terminate

用户名

我有一个main.py,我将其加载到c ++中并与

void runscript ( std::string script )
{
    try {
        PyRun_SimpleStringFlags ( script.c_str() ,NULL );
    }
    catch ( const boost::python::error_already_set& ) {
        std::cout<<"test error"<<std::endl;
    }
}

main.py有一行:

import test

(即test.py)
位于main.py内的同一文件夹中。当test.py出现错误时,我无法获取错误,应用程序崩溃:

抛出'boost :: python :: error_already_set'实例后调用终止

有没有一种方法可以缓存哪个文件或哪一行出现错误?

安德鲁·斯维特洛夫(Andrew Svetlov)

您可以使用evalexec代替(文档参考)。

try {
    bp::exec(script);
}
catch (bp::error_already_set) {
}

真正的问题是从异常对象获取错误信息。

通过PyErr_Print()fromcatch将异常打印到stdout很容易,但是如果您需要更复杂的分析,则代码将变得很麻烦。

catchblock中,您必须通过来获取异常信息,通过来进行PyErr_Fetch归一化PyErr_NormalizeException,例如,通过迭代回溯对象来分析调用堆栈。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

boost python error message:terminate called after throwing an instance of 'boost::python::error_already_set'

来自分类Dev

打印Boost Boost Python对象

来自分类Dev

无法在 Boost Python 中返回类的实例

来自分类Dev

用boost :: python链接错误

来自分类Dev

错误链接到Boost Python

来自分类Dev

如何模拟Boost引发异常?

来自分类Dev

Scipy与boost :: python函数

来自分类Dev

Boost.Python和Boost.Function

来自分类Dev

Boost.Python和Boost.Signals2:分段错误

来自分类Dev

Boost python,嵌入式时从python调用c ++函数

来自分类Dev

boost.python:从Python调用基类的函数

来自分类Dev

从简单的python类/函数调用Boost Python函数

来自分类Dev

Set a python variable to a C++ object pointer with boost-python

来自分类Dev

python boost范围导致NoneType错误

来自分类Dev

Boost Spirit Symbol引发访问冲突

来自分类Dev

烧瓶,boost :: python和线程

来自分类Dev

boost :: python:使用回调

来自分类Dev

Boost Python:停止解释器

来自分类Dev

用Boost Python暴露多态

来自分类Dev

简单的boost :: python程序崩溃

来自分类Dev

Boost Python:停止解释器

来自分类Dev

Boost Python 3 迭代 dict

来自分类Dev

(Boost.Python)导入boost python模块后退出Python 3时出现分段错误

来自分类Dev

C ++的boost :: python包装对象的析构函数调用

来自分类Dev

为什么boost python会调用copy构造函数?

来自分类Dev

C ++的boost :: python包装对象的析构函数调用

来自分类Dev

boost :: asio :: read引发编译错误'read_some'不是'boost :: shared_ptr <boost :: asio :: ip :: tcp :: socket>'的成员

来自分类Dev

How to solve __imp___Py_NoneStruct Error in Boost.Python?

来自分类Dev

win7 boost :: asio :: windows :: stream_handle构造函数引发错误

Related 相关文章

热门标签

归档