c# - 实现接口(interface)时是否需要处理已记录异常的引发

标签 c# interface exception

我正在通过在我的类中实现 ICollection 创建自定义 C# 集合,并注意到接口(interface)定义的一些方法有异常记录,即 http://msdn.microsoft.com/en-us/library/0efx51xw(v=vs.110).aspx

我所看到的关于实现接口(interface)的示例或文档似乎都没有谈到需要实现引发异常。每当接口(interface)中某个方法的文档显示该方法可能引发异常时,我是否应该检查每个条件并在我的实现代码中引发异常?

最佳答案

在记录接口(interface)时,通常会包含 xml 文档以指示实现可能抛出的异常。这并不意味着实现必须能够抛出这些,只是它们可以抛出它们。

参见 Liskov 的替代原则。具体来说,“子类型的方法不应抛出新的异常,除非这些异常本身是父类(super class)型方法抛出的异常的子类型。” - http://en.wikipedia.org/wiki/Liskov_substitution_principle

关于c# - 实现接口(interface)时是否需要处理已记录异常的引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953483/

相关文章:

java - 如何将对象上下文传递给 Java 中的回调接口(interface)

java - Java中并发写入时如何通过异常发出关于 'retry exceeded'的信号?

c# - Microsoft.NETCore.UniversalWindowsPlatform 5.2.2 Nuget 更新失败

c# - 如何使用 VB.net 的 dll 到 C#

C# AntiForgeryToken 属性在 mvc 应用程序中导致 StackOverflowException

android - 在 CursorAdapter 中更改光标

javascript - 这个 'NOT_FOUND_ERR: Dom exception 8' 让我很困惑

c# - 我是否可以忽略因缺少此异步调用的等待而发出的编译器警告?

java - 为什么应该首选 Java 类的接口(interface)?

Java 7 接口(interface)变量?