On Dec 8, 9:42 pm, Senthil Kumar <[EMAIL PROTECTED]> wrote: > Hi Pythoneers ! > Can somebody give a quick solution? > I am trying to raise exceptions in python and trying to handle it in > C. > I am able to raise exceptions successfully. However could not catch > those in C. > I am using the following function to run the python from C: > Pyrun_SimpleString(). > After the exception is raised, I am checking PyErr_Occurred(). It > always returns NULL, and I cannot catch the exception. > Pls help me a way out. > > Thanx in advance !
I use something like this: if (PyErr_Occurred()) { if (PyErr_ExceptionMatches(ExceptionName)) { /* do something about ExceptionName */ } else if (PyErr_ExceptionMatches(AnotherExceptionName)) { /* if we want to get the exception string */ PyObject *errtype, *errvalue, *traceback; PyErr_Fetch(&errtype, &errvalue, &traceback); if(errvalue != NULL) { PyObject *s = PyObject_Str(errvalue); /* Now 'PyString_AS_STRING(s)' contains C string of error message do something with it */ Py_DECREF(s); } Py_XDECREF(errvalue); Py_XDECREF(errtype); Py_XDECREF(traceback); } } Goof luck. -- http://mail.python.org/mailman/listinfo/python-list