Чтобы вызвать функцию C из Python, функция C должна быть обернута функцией Python. Для CPython оболочка может быть написана на C с помощью пакета, такого как Swig, в Cython или Python с помощью модуля ctypes
. Обертка должна переводить входы Python в значения C, определять переменные вывода C, вызывать функцию C, проверять код возврата и либо переводить вывод C в Python, либо возвращать его, либо переводить код C в исключение Python и поднять его.
похоже, что вы используете Python's zlib
, который обертывает C zlib
. Он определяет класс исключения Python error
.
>>> import zlib
>>> zlib.error
<class 'zlib.error'>
>>> issubclass(zlib.error, Exception)
True
Вы поймаете его, как любое другое исключение.
>>> try:
raise zlib.error('Error 99: unknown')
except zlib.error as e:
print(e)
Error 99: unknown
Чтобы быть в соответствии с Конвенцией исключением имен, я бы назвал его ZlibError
.