假设我有一个Foo
具有复杂属性的类Bar
。然后,假设我在其他类中有如下方法:
public void DoSomething(Foo foo)
{
if (foo == null)
throw new ArgumentNullException("foo");
if (foo.Bar == null)
throw new ArgumentNullException("bar");
}
ArgumentNullException
即使严格来说,foo.Bar
在这种情况下不是一个论点,这里是否使用适当的?我已经阅读NullReferenceException
并且可以理解手动抛出一个是不合适的。这是在告诉我我需要抽象吗?
public void DoSomething(Foo foo)
{
if (foo == null)
throw new ArgumentNullException("foo");
DoSomethingElse(foo.Bar);
}
private void DoSomethingElse(Bar bar)
{
if (bar == null)
throw new ArgumentNullException("bar");
}
我的第一个代码片段是“正确”的用法ArgumentNullException
吗?处理这种情况的常规方法是什么?
谢谢。