【问题标题】:Why doesn't VB.NET enforce handling exceptions? [duplicate]为什么 VB.NET 不强制处理异常? [复制]
【发布时间】:2011-03-14 01:15:45
【问题描述】:

可能重复:
Why are Exceptions not Checked in .NET?

如果我没记错的话,Java 强制捕获和处理被调用方法可能抛出的任何异常。为什么 .NET 不做同样的事情?

【问题讨论】:

  • 除了 java 之外,还有很多其他语言有这种强制措施吗?我想不出太多。我认为java可能是这个奇怪的人。并不是说那很糟糕......

标签: .net exception enforcement


【解决方案1】:

我建议阅读The Trouble with Checked Exceptions,其中首席 C# 架构师 Anders Hejlsberg 与 Bruce Eckel 和 Bill Venners 讨论了受检查异常的版本可扩展性和可伸缩性问题。

【讨论】:

    【解决方案2】:

    有时您不想立即在其发生的方法中处理异常。

    有时您无能为力。

    例如,如果您正在从数据库中检索数据,并且在检索数据时出现问题,则数据访问层可能不是处理该问题的最佳位置。让异常冒泡到业务逻辑层或表示层可能会更好,在那里可以向用户显示适当的信息。

    在 .Net 中,一般方法是仅在您可以对其采取措施时才处理异常。通常,您所能做的就是向用户提供有用的信息。

    【讨论】:

      【解决方案3】:

      Java 中的此功能称为检查异常。 C# 的创建者 Anders 进行了一次采访,他详细解释了为什么它们没有被包含在 C# 和 VB.Net 中

      我因此说 VB.Net,因为如果 C# 和 CLR 都没有包含检查异常,那么 VB.Net 也没有理由包含它们。 VB 已经从一个不包含异常的模型进行了大规模的转变。引入一个与 CLR 的其余部分完全不同的新异常模型将无效,造成用户混淆并导致更多的跨语言兼容性问题

      【讨论】:

        猜你喜欢
        • 2013-02-12
        • 2016-10-31
        • 1970-01-01
        • 2016-04-16
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-16
        相关资源
        最近更新 更多