Dan*_*Tao 1 .net language-agnostic exception-handling exception
说我有这样的方法*:
public T GetItem(int index)
{
if (index < 0 || index >= _privateList.Count)
{
throw new ArgumentOutOfRangeException("index");
}
return _privateList[index];
}
Run Code Online (Sandbox Code Playgroud)
你会包括它throw
还是把它留下来?一方面,我觉得立即处理无效输入是件好事,因为这样可以让您在编写实际实现代码时对所处理的内容更有信心.但是在这种情况下,如果省略了边界检查,则最终结果将大致相同(列表将抛出ArgumentOutOfRangeException
而不是封闭类型).
此外,由于上面的代码正在检查我的内容,开发人员知道无论如何都会检查(在调用中_privateList[index]
),似乎我正在使代码执行比上面需要更多的工作,基本上执行完全同一组比较两次.
任何有关该主题的指导将不胜感激.
*具体来说,我在谈论.NET(C#),但我认为可以向许多不同的语言/框架提出相同或类似的问题 - 因此"语言无关"标签.
归档时间: |
|
查看次数: |
118 次 |
最近记录: |