c++ - 异常与 errno

标签 c++ c exception errno

作为一名 C 程序员,我对异常没有太多经验。我更习惯于将 errno 作为在多个函数调用之间传达错误的一种方式。话虽如此,我没有看到异常的显着特征,所以...

异常和使用 errno 的根本区别是什么?

最佳答案

这里有太多差异,很难说从哪里开始。

首先,C中使用的errno是一个全局变量;这意味着每个调用 errno 设置子例程的例程都必须在执行任何其他工作之前检查 errno,如果它关心正确性的话。幸运的是,errno is threadsafe .

C++ 异常会自动展开调用堆栈,直到它们找到准备好处理错误的函数。这意味着在大多数情况下,用户不必明确检查每个调用是否有错误;相反,他们可以在一个地方收集错误返回。 C++ 异常可以包含整数以外的值,这与 errno 不同。

关于c++ - 异常与 errno,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986266/

相关文章:

c++ - 并行执行的 OpenCL 验证

c++ - 字符串声明/引用参数的困难 (c++)

c - 我的链表代码有什么错误?

java - 关于Java.lang.Error的问题

c++ - 实时音频处理

c - 第二个 printf 不工作,需要帮​​助。 (C郎)

c - 什么时候发生段错误?

c# - 在哪里可以找到 SocketException 抛出的 SocketErrorCode 和 NativeErrorCode 列表?

java - 我应该为 "No such Element"抛出什么异常?

c++ - 等待按键但在 C++ 时间后自动启动