我有一个ctypes
回调函数,如下所示:
def wrapper(ud, event):
try:
# ...
except BaseException:
wrapper.exc_info = sys.exc_info()
return False
HandlerCallback = PYFUNCTYPE(c_int, py_object, Event)
cb = HandlerCallback(wrapper)
# pass `cb` to a C function
exc_info = getattr(wrapper, 'exc_info', None)
if exc_info:
six.reraise(*exc_info)
不幸的是,这并不是100%的可能病例。我遇到了一个keyboardInteruppt
的问题,它似乎是在C函数调用和对wrapper()
的调用之间引发的。不幸的是,回溯一点帮助也没有。在
是否可以让PYFUNCTYPE
包装器捕获任何异常,而不是打印它们,然后将它们交还给我,这样我可以在C函数调用之后重新读取异常?在
目前没有回答
相关问题 更多 >
编程相关推荐