考虑配置(属性,在我的情况下)为空的情况。Dot Net异常:空引用和参数null异常
public Configuration {get;set;}
if (configuration == null)
{
throw NullReferenceException("Blah blah blah..");
}
但是,我读的地方,“难道没有抛出一个空引用异常在你的代码。NullReferenceException
是一个运行时异常,应该只由运行时得到提升”。
如果它是一个函数的参数,我想我会使用ArgumentNullException
。
那么,在这种情况下应该是什么例外?一般来说,在什么情况下应该抛出什么样的例外?谷歌搜索这个,但没有令人满意的答案。
我主要是防止我需要一个属性公开的情况,但可能不是null。但是,如果它是类的重要组成部分,我会将它作为构造函数的参数并在其中引发'ArgumentNullException'。如果(包括那个)你仍然需要它是公开的,当有人将null传递给setter时,我会抛出一个'ArgumentNullException'。但是,现在可能不是这种情况,并且[InvalidOperationException](http://msdn.microsoft.com/en-us/library/system.invalidoperationexception.aspx)是最好的。 – Silvermind