我正在用 C 语言编写一个小程序。我在 Code::Blocks 中工作。我一直在寻找如何处理 C 语言中的异常,我在 docs.microsoft.com 上找到了 __try __except 的描述,但由于某种原因,编译器对此发誓。请告诉我如何进行异常处理。
我正在用 C 语言编写一个小程序。我在 Code::Blocks 中工作。我一直在寻找如何处理 C 语言中的异常,我在 docs.microsoft.com 上找到了 __try __except 的描述,但由于某种原因,编译器对此发誓。请告诉我如何进行异常处理。
从好的方面来说,异常调用堆栈上所有变量的析构函数并返回到捕获异常的范围。
C 中没有析构函数,也没有修复和执行临界区的机制,例如释放互斥锁、释放临时内存等。一切都在程序员的良心和他的手中。
返回到程序的所需部分并在注视点所在的位置继续执行是使用函数实现的
setjmp。它捕获异常或修复起点。使用函数触发异常
longjmp。它只能创建 type 的异常
int,如果程序员想要使用另一种类型,那么他必须再次自己编写所有这些。例如,第 3 号异常意味着异常本身存储在第 3 号结构中。这是一个正面的例子,以及 C 中的一个模拟:
C++
C