为什么异常在c# /中如此流行?. NET编程与c++ /Win32中的错误代码的比较

本文关键字:编程 c++ Win32 NET 比较 错误代码 流行 异常 为什么 | 更新日期: 2023-09-27 17:50:56

我是从c++/Win32开发环境迁移到c#/. net的人。我注意到的一件事是,在c++/Win32中,大多数错误状态是通过使用错误代码及其传播来处理的。

恰恰相反,c#/中最错误的状态。. NET似乎是通过使用异常来处理的,很少建议使用错误码。

为什么?

为什么异常在c# /中如此流行?. NET编程与c++ /Win32中的错误代码的比较

错误代码的主要问题是需要检查它们。总是这样。

我们只是人,会忘记。

这意味着我们可能仅仅因为忘记检查错误代码而使程序进入不一致状态。

但是,如果忘记处理异常,程序将退出。

这被认为比它继续在不一致状态下运行更可取。

错误码在C/c++代码中仍然普遍存在的主要原因是历史原因——这些语言没有异常处理,所以需要错误码。而且有很多库和代码都符合这种习惯,所以程序员需要遵循它。

除了它们不能被忽略之外,还有其他使用异常的原因——正如Marc所观察到的,它们携带了相当多的上下文——堆栈跟踪、消息等等,超出了异常的类型

我想说的一个主要原因是错误码是特定于平台的。net最初的设计是为了可移植的。

例如,FileNotFoundException比一些模糊的数字更通用,这些数字可能根据您所运行的平台而变化。