当用于返回值的对象为null时,您将从readonly属性抛出什么类型的异常
public class TestClass
{
SomeObject obj;
public string NameOfObject
{
get
{
if(obj == null)
{ // what exception type to throw here }
return obj.Name;
}
}
Run Code Online (Sandbox Code Playgroud)
我会抛出一个InvalidOperationException.
ArgumentNullException 我只在方法参数为null时抛出.
如果methods参数处于无效状态,则抛出一个ArgumentException.
一个InvalidOperationException异常是什么,我会在这种情况下使用,因为访问的财产是无效对象的当前状态.
根据MSDN文档:
"方法调用对于对象的当前状态无效时引发的异常."
另外:
"如果调用方法失败是由无效参数以外的原因引起的,则使用InvalidOperationException."
在这种情况下obj不争论,这就是为什么我会瘦走向"InvalidOperationException异常"
我不会在这里抛出NullReferenceException的原因:如果你没有添加任何特殊代码,那就是".Net"会抛出的异常,那么为什么要添加冗余代码呢?