【发布时间】:2014-03-30 21:27:54
【问题描述】:
我用 C++ 编写并理解为什么需要异常。 主要是因为 raii 允许您以非常简单的方式处理您拥有的所有资源。
但是,在 c# 中,我似乎找不到任何使用异常的理由。 它们使代码变慢并需要系统提供更多资源。
异常相对于 c 风格的枚举有什么优势? tyvm:)
【问题讨论】:
-
C++ 中的异常也不是免费的..
-
“它们使代码变慢”。是的。代码使代码变慢。我们为什么要使用它们?因为它们是一种语言功能,可以轻松管理异常情况。我很惊讶您提到 RAII,但看不到 C# 异常与它们的关系,特别是在
using语句和try/[catch]/finally块的范围内使用时。异常捕获了大量有关投掷站点的信息...我需要继续吗? -
@spender,我认为您的评论可能需要一个完整的答案。
-
@Oren,我从来没有用返回码编码过(或者至少在很长一段时间内都没有),所以我对争论的另一面没有信心。