C# CA2201 NullReferenceException警告

C# CA2201 NullReferenceException警告,c#,C#,我正在清理一些C代码,发现了一些CA2201警告。我理解这个问题,但我不确定我应该提出什么样的例外 看看这段代码,它是BackgroundWorker的“DoWork”事件回调 private void DoWork(Object s, DoWorkEventArgs e) { var worker = s as BackgroundWorker; if (worker == null) throw new NullReferenceException()

我正在清理一些C代码,发现了一些CA2201警告。我理解这个问题,但我不确定我应该提出什么样的例外

看看这段代码,它是BackgroundWorker的“DoWork”事件回调

private void DoWork(Object s, DoWorkEventArgs e)
    {
    var worker = s as BackgroundWorker;
    if (worker == null)
        throw new NullReferenceException();

    // DoSomeStuff();
    }
在这种情况下,我认为ArgumentException可以解决警告问题,但是这个呢

public void Foo()
    {
    var thing = MyFactory.Create(someArgs);
    if (thing == null)
        throw new NullReferenceException();

    thing.DoSomeStuff();
    }
在这种情况下,我找不到应该引发什么样的异常,因为我只有一个NullReferenceException。我应该在那里做什么


您好。

您可以创建自己的异常类,即
InstanceWasNotCreatedException
并抛出这些异常的实例。一些有用的消息会很好。

您可以创建自己的异常类,即
InstanceWasNotCreatedException
并抛出这些异常的实例。一些有用的消息会很好。

如果(worker==null)返回,则在处理案例时不要抛出异常;在第二种情况下,它不是ArgumentException、InvalidOperationException或FormatException,只是thing对象为null。如果有适合这种情况的异常,我不想实现我自己的异常;在第二种情况下,它不是ArgumentException、InvalidOperationException或FormatException,只是thing对象为null。如果有适合这种情况的异常,我不想实现我自己的异常。正如我所说的,我知道我可以实现我的自定义异常。我只想知道在这种情况下是否有任何stard和exception可以使用,而不是我自己做的。正如我所说的,我知道我可以实现我的自定义exception。我只想知道在这种情况下是否有任何标准和例外,而不是我自己做的。