记录例外情况
本文关键字:情况 记录 | 更新日期: 2023-09-27 18:24:53
我有以下公共接口
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文档中记录这些异常有意义吗?
提前感谢,
是-即使BarImpl
不是唯一的实现者,情况也是如此。
我喜欢使用的例子是Stream类,其中抽象的Read方法列出了Stream
实例的用户在使用该方法时可能会抛出的大量异常,而该类的实现者则应该在各种场景下抛出这些异常。
我只记录可以处理的异常。记录任何其他例外情况都没有意义。我对"处理"异常的定义是,该方法可以通过捕获异常来传递承诺的结果。
所以这个答案只适用于那些例外情况:
如果你想遵循打开/关闭的原则,你应该记录接口的异常,而不是具体的类。当发生相同的场景时,所有实现都必须抛出相同的异常。