当相关参数不是null
但其成员之一是时,是否建议抛出ArgumentNullException
?例如,如果我有以下方法:
public T Method(Blog blog)
{
if (blog.Posts is null)
{
throw new ArgumentNullException(paramName: nameof(blog.Posts));
}
}
为了使此方法完成其工作,它要求blog.Posts
不能是null
。ArgumentNullException
是否打算以这种方式使用?还是会产生误导?如果是这样的话,是否还有其他特定的异常类型更适合这个用例,或者我应该只依赖默认的NullReferenceException
?
我认为创建自己的自定义异常来实现三个常见的构造函数更有意义。您可以扩展ArgumentNullException。
来自文档:
当调用一个方法并且至少有一个传递的参数为null但不应为null时,会引发ArgumentNullException异常。
所以我认为ArgumentNullException
是正确的,因为该属性是传递参数的一部分。确保你已经做了什么,提供信息,是什么导致了异常。