作为一名 C 程序员,我对异常没有太多经验。我更习惯于将 errno
作为在多个函数调用之间传达错误的一种方式。话虽如此,我没有看到异常的显着特征,所以...
异常和使用 errno
的根本区别是什么?
最佳答案
这里有太多差异,很难说从哪里开始。
首先,C中使用的errno
是一个全局变量;这意味着每个调用 errno
设置子例程的例程都必须在执行任何其他工作之前检查 errno
,如果它关心正确性的话。幸运的是,errno is threadsafe .
C++ 异常会自动展开调用堆栈,直到它们找到准备好处理错误的函数。这意味着在大多数情况下,用户不必明确检查每个调用是否有错误;相反,他们可以在一个地方收集错误返回。 C++ 异常可以包含整数以外的值,这与 errno 不同。
关于c++ - 异常与 errno,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986266/