我刚刚在这里阅读,我不应该ArgumentNullException从我自己的源代码中抛出.为什么是这样?
如果我有一个不应该传递的方法null,为什么不检查参数并抛出它是否确实为空?
public void DoStuff(List<Int32> list) // Shouldn't be null.
{
if(list == null) // If input is null...
throw new ArgumentNullException();
...
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
该引用没有说任何这样的事情(我找不到该页面上提到的ArgumentNullException).它确实说不抛出NullReferenceException,这是一个完全不同的异常,并且确实不应该从你自己的代码抛出(你没有理由).
我一直从我自己的代码中抛出ArgumentNullException,在检查参数时.NET Framework也是如此.