如何捕获ctypes抛出的异常?

3 投票
1 回答
1581 浏览
提问于 2025-04-15 22:45

我正在用ctypes从Python调用一些C代码。在这个C库的某个地方,发生了异常或者调用了abort()。有没有办法在我的Python代码中捕捉到这个问题?(我使用的系统是Linux)

1 个回答

3

你可以尝试在程序中设置一个信号处理器,专门处理SIGABRT这个信号,这个信号是因为调用abort()函数而产生的。不过,出现失败的断言通常意味着内存可能被破坏了,还有其他一些糟糕的情况——断言失败通常是有原因的。所以一般来说,最好的做法就是结束程序(当然,在结束之前可以先在你的处理器里显示或记录一下错误信息)。

撰写回答