抛出什么类型的异常

She*_*raz 8 c# exception

当用于返回值的对象为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)

Khh*_*Khh 9

我会抛出一个InvalidOperationException.

ArgumentNullException 我只在方法参数为null时抛出.

如果methods参数处于无效状态,则抛出一个ArgumentException.

  • 如果你在没有传递自己的消息的情况下执行`new InvalidOperationException()`,则默认消息是"由于对象的当前状态,操作无效.",这是完全正确的. (3认同)

Raj*_*Rao 8

一个InvalidOperationException异常是什么,我会在这种情况下使用,因为访问的财产是无效对象的当前状态.

根据MSDN文档:
"方法调用对于对象的当前状态无效时引发的异常."
另外:
"如果调用方法失败是由无效参数以外的原因引起的,则使用InvalidOperationException."

在这种情况下obj不争论,这就是为什么我会走向"InvalidOperationException异常"

我不会在这里抛出NullReferenceException的原因:如果你没有添加任何特殊代码,那就是".Net"会抛出的异常,那么为什么要添加冗余代码呢?