纯C中的异常处理库

qmo*_*mor 4 c exception

是否有一些用于异常处理的跨平台c库(在C中实现try/catch)?

我也在寻找文档如何在c ++中实现(中断如何掩盖或类似的东西)

小智 7

你可以试试exceptions4c ; 它在ANSI C的异常处理库支持:throw,try,catch,finally和一些更多的好东西.例如,它支持Dispose模式,因此您可以自动释放资源.您还可以处理信号(例如SIGFPESIGSEGV),就像它们是异常一样.

这是对的基础上实现setjmplongjmp(C标准库),而且它是免费软件,所以您可以读取和修改源代码.

哦,顺便说一下,我是作者:)请看看它,并将它与其他替代方案进行比较,看看哪个最适合你.


Bri*_*and 3

实现与 C++ 异常处理类似的结果的一种方法是使用 setjmp 和 longjmp。请参阅维基百科页面的一个简单示例: http: //en.wikipedia.org/wiki/Setjmp.h。查看 Lua 解释器的源代码以获取实际示例。

请注意,这不是 try/catch 的真正实现,因为您可以从 C++ 调用库并获取真正的异常。