我正在通过在我的类中实现ICollection创建一个自定义C#集合,并注意到该接口定义的一些方法记录了异常,即http://msdn.microsoft.com/en-us/library/0efx51xw(v=vs.110).aspx
我见过的用于实现接口的示例或文档似乎都没有谈到需要实现引发异常的问题。只要接口中的方法文档显示该方法可以引发异常,我应该检查每个条件并在我的实现代码中引发异常吗?
答案 0 :(得分:1)
在记录接口时,通常包含xml文档以指示实现可能引发的异常。这并不意味着实现必须能够抛出这些,只是它们可能抛出它们。
见利斯科夫的替代原则。具体而言“子类的方法不应抛出新的异常,除非这些异常本身是超类型方法抛出的异常的子类型。” - http://en.wikipedia.org/wiki/Liskov_substitution_principle