c++ - boost python error message:terminate called after throwing an instance of 'boost::python::error_already_set' -
i have main.py loaded in c++ , run
void runscript ( std::string script ) { seek { pyrun_simplestringflags ( script.c_str() ,null ); } grab ( const boost::python::error_already_set& ) { std::cout<<"test error"<<std::endl; } } the main.py has line:
import test (which test.py) located in same folder within main.py. when test.py has error cannot cach error got, application crash with:
terminate called after throwing instance of 'boost::python::error_already_set'
is there way cache file or line got error?
you can utilize eval or exec instead (doc reference).
try { bp::exec(script); } grab (bp::error_already_set) { } the real problem getting error info exception object.
it's easy print exception stdout pyerr_print() catch block, if need more complicated analysis code becomes cumbersome.
in catch block have exception info pyerr_fetch, normalize pyerr_normalizeexception and, say, analyze phone call stack iterating on traceback objects.
python c++ boost
No comments:
Post a Comment