Errors are indicated by returning NULL to the interpreter. Prior to returning NULL, an exception should be set or cleared using one of the following functions:
Clears any previously raised exceptions.
Checks to see whether an error has been generated. If so, returns the current exception object. Otherwise, it returns NULL.
int PyErr_ExceptionMatches(Pyobject *exc)
Returns 1 if the current exception matches the exception exc. Otherwise, it returns 0. This function applies the same exception-matching rules as in Python code. Therefore, exc could be a superclass of the current exception. It can also be a tuple of exception objects.
int PyErr_GivenExceptionMatches(PyObject *given, ...