相关疑难解决方法(0)

访问参数的属性时使用ArgumentNullException

假设我有一个Foo具有复杂属性的类Bar.然后,假设我在其他类中有类似以下的方法:

public void DoSomething(Foo foo)
{
    if (foo == null)
        throw new ArgumentNullException("foo");
    if (foo.Bar == null)
        throw new ArgumentNullException("bar");
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下使用是否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");
}
Run Code Online (Sandbox Code Playgroud)

我的第一个代码片段是"正确"用法ArgumentNullException吗?处理这种情况的传统方法是什么?

谢谢.

c# exception-handling exception conventions

1
推荐指数
1
解决办法
687
查看次数

标签 统计

c# ×1

conventions ×1

exception ×1

exception-handling ×1