Вы можете попробовать exceptions4c ; это библиотека обработки исключений в ANSI C, которая поддерживает: throw
, try
, catch
, finally
и еще несколько вкусностей. Например, он поддерживает шаблон Dispose , поэтому вы можете автоматически освобождать ресурсы. Вы также можете обрабатывать сигналы (например, SIGFPE
и SIGSEGV
), как если бы они были исключениями.
Он реализован поверх setjmp
и longjmp
(стандартная библиотека C) и является бесплатным программным обеспечением, поэтому вы можете читать и изменять исходный код.
Да, кстати, я автор :) Пожалуйста, посмотрите на это и сравните с другими альтернативами , чтобы увидеть, что подходит вам больше всего.