void pymodule_addintmacro(pyobject *modulemacroadds macro value to module as an integer macro must be the name of preprocessor macro void pymodule_addstringmacro(pyobject *modulemacroadds macro value to module as string error handling extension modules indicate errors by returning null to the interpreter prior to returning nullan exception should be set using one of the following functionsvoid pyerr_nomemory(raises memoryerror exception void pyerr_setfromerrno(pyobject *excraises an exception exc is an exception object the value of the exception is taken from the errno variable in the library void pyerr_setfromerrnowithfilename(pyobject *excchar *filenamelike pyerr_setfromerrno()but includes the file name in the exception value as well void pyerr_setobject(pyobject *excpyobject *valraises an exception exc is an exception objectand val is an object containing the value of the exception void pyerr_setstring(pyobject *excchar *msgraises an exception exc is an exception objectand msg is message describing what went wrong the exc argument in these functions can be set to one of the followingc name python exception pyexc_arithmeticerror pyexc_assertionerror pyexc_attributeerror pyexc_environmenterror pyexc_eoferror pyexc_exception pyexc_floatingpointerror pyexc_importerror pyexc_indexerror pyexc_ioerror pyexc_keyerror pyexc_keyboardinterrupt pyexc_lookuperror pyexc_memoryerror pyexc_nameerror pyexc_notimplementederror arithmeticerror assertionerror attributeerror environmenterror eoferror exception floatingpointerror importerror indexerror ioerror keyerror keyboardinterrupt lookuperror memoryerror nameerror notimplementederror lib fl ff