1

我有以下公共界面

public interface Bar{
   public void DoStuff();
}

带有内部后端类

internal class BarImpl : Bar{
   public void DoStuff(){
     // throw exception if invalid state
     // do something
   }
}

问题:

  • BarImpl实现Bar接口。
  • BarImplDoStuff可以在方法中抛出异常。

Bar.DoStuff在xml 文档中记录这些异常是否有意义?

提前致谢,

4

3 回答 3

3

是的 - 即使BarImpl不是唯一的实施者也是如此。

我喜欢使用的示例是Stream类,其中抽象Read方法列出了Stream实例的用户在使用此方法时可能期望抛出的整个异常负载,而反过来,此类的实现者应该在各种情况下抛出。

于 2012-02-17T13:26:25.687 回答
1

是的,它确实。它可以帮助其他开发人员做好准备并处理可能发生的任何异常。想想它有多少次通过 MSDN 文档帮助您为异常做好准备。

于 2012-02-17T13:09:39.170 回答
1

我只记录可以处理的异常。记录任何其他异常没有意义。我对“处理”异常的定义是,该方法可以通过捕获异常来交付承诺的结果。

所以这个答案只适用于那些例外:

如果你想遵循开放/封闭原则,你应该记录接口的异常而不是具体的类。并且所有的实现必须在相同的场景发生时抛出相同的异常。

于 2012-02-17T13:11:51.557 回答