У меня есть следующий стек вызовов:
library_function_1 ====> my_function ====> library_function_2
calls calls
В C ++, если library_function_2
выдает исключение и library_function_1
перехватывает его, my_function
может безопасно очистить (освободить ресурсы и т. Д.), Используядеструкторы (т. е. RAII).
Аналогично, my_function
можно очистить, используя операторы try
/ finally
и using
.
В C, если library_function_1
использует setjmp
и library_function_2
longjmp
s обратно, есть ли способ для my_function
убрать?