On Mar 7, 9:22 pm, "Gabriel Genellina" <[email protected]> wrote: > En Sat, 07 Mar 2009 01:43:05 -0200, BigHand <[email protected]> escribió: > > > > > On Mar 7, 11:40 am, BigHand <[email protected]> wrote: > >> Guys: > >> I have a embedded python in MFC app. to execute a py script of a.py, > >> the is only one line in a.py, it "a()" , normally ,excute this script > >> file ,you will get a > >> "the exception type is<class 'NameError'> " > >> "The exception value is name 'a' is not defined " > > >> Python3.0 with VS2005. > >> here is the brief code: > >> Py_Initialize(); > >> PyObject *m, *d, *v; > >> m = PyImport_AddModule("__main__"); > >> d = PyModule_GetDict(m); > >> v = PyRun_File(fp, pStr, Py_file_input, d, d); //~~~the py > >> script is a.py > >> PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL; > >> PyErr_Fetch(&exc_type, &exc_value, &exc_tb); //~~~after fetch , the > >> exc_type, exc_value, exc_tb are not "NULL" > >> PyObject * modTB = PyImport_ImportModule("traceback"); > >> PyObject* pyUStr = PyUnicode_FromString("format_exception"); > >> PyObject* listTB = PyObject_CallMethodObjArgs(modTB, pyUStr, > >> exc_type, exc_value, exc_tb, NULL); > > >> in the PyObject_CallMethodObjArgs(modTB, pyUStr, exc_type, exc_value, > >> exc_tb, NULL), I get modTB, pyUStr, exc_type, exc_value, exc_tb are > >> not NULL, but the listTB is always NULL, I can retrieve the list... > > >> any body could enlight me? > > > it's "I can't retrieve the traceback list." > > PyErr_Print or PyTraceback_Print aren't suitable for you? Those functions > are much easier to use from C code, while the traceback module is intended > to be used in Python code. > > -- > Gabriel Genellina
Hello,Gabriel, I gave up using the format_exception, and use calling the python fucntion of print_tb. -- http://mail.python.org/mailman/listinfo/python-list
