这个问题让我感到很困惑,很长一段时间。我注意到有人问过类似的问题,但对我来说并没有一个完美的答案。 令我困惑的是:
那么,平衡点是什么?我应该遵循哪种方式?或许我对界面编程的理解是错误的。
非常感谢。
答案 0 :(得分:0)
我认为你不应该将实现接口的用户绑定到严格的异常。他/她可能需要实现自己的异常类型或抛出您正常想到的其他异常。这是基于您的界面的抽象程度。如果您在IList
上考虑可以在Add(object item);
上抛出哪些例外情况?如果你创建了界面,你就无法知道这一点,因为我想说我想创建一个新类如下:
public class FileList : IList
{
public void Add(object item)
{
try
{
}
//Here I could need this Exception which you can't know on interface-Level
catch(FileNotFoundException ex)
{
}
}
}
这只是我的观点,你不会得到一个明确的答案如何使用它。如果您确实需要或想要在接口级别标记异常,我建议您使用XML-Comments:
/// <summary>
/// Adds an object to your List
/// </summary>
/// <param name="item">The Item to Add</param>
/// <exception cref="FileNotFoundException"></exception>
/// <exception cref="ArgumentNullException"></exception>