Dot Net Exceptions:空引用和参数null异常

now*_*ed. 1 .net c# visual-studio-2010 .net-4.5

考虑配置(在我的情况下属性)为null的情况.

public Configuration {get;set;}

if (configuration == null)
{
   throw NullReferenceException("Blah blah blah..");
}
Run Code Online (Sandbox Code Playgroud)

但是,我在某处读到,"不要在代码中抛出空引用异常.NullReferenceException是运行时异常,只应由运行时引发".

如果它是一个函数的参数,我想我会用一个ArgumentNullException.

那么,在这种情况下应该是什么例外?总的来说,在什么情况下应该抛出什么例外?用Google搜索但没有令人满意的答案.

NDJ*_*NDJ 6

InvalidOperationExceptions状态 - 当方法调用对于对象的当前状态无效时引发的异常,我认为这不是一个错误的选择?我同意空引用不是你应该抛出的.

这是另一个常见例外列表.