SystemError: error return without exception set
Esto se puede deber a que se ha devuelto NULL en una función en la que se debería devolver algo (None por ejemplo):
static PyObject*
example(PyObject *self, PyObject* args, PyObject* kwargs)
{
// do something
return NULL;
}
se corrige de la siguiente forma:
static PyObject*
example(PyObject *self, PyObject* args, PyObject* kwargs)
{
// do something
Py_RETURN_NONE;
}
o porque al lazar una excepción, no hemos indicado de que excepción se trata:
static PyObject*
example(PyObject *self, PyObject* args, PyObject* kwargs)
{
PyObject* var;
// ...
if(!PyBool_Check(var))
{
return NULL;
}
}
y se corrige:
static PyObject*
example(PyObject *self, PyObject* args, PyObject* kwargs)
{
PyObject* var;
// ...
if(!PyBool_Check(var))
{
PyErr_SetString(PyExc_TypeError, "Not boolean");
return NULL;
}
}
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
