【问题标题】:Documenting exceptions记录异常
【发布时间】:2012-02-17 13:07:44
【问题描述】:

我有以下公共接口

public interface Bar{
   public void DoStuff();
}

带有内部后端类

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

问题:

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

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

提前致谢,

【问题讨论】:

    标签: c# documentation-generation code-documentation


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        所以这个答案只针对那些例外:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-02
          • 2021-04-29
          • 2014-02-28
          • 2015-10-19
          • 2014-02-20
          相关资源
          最近更新 更多