C# 正在引发异常

C# 正在引发异常,c#,C#,当有空值时抛出ArgumentNullException()是个好主意吗?线程没有提到在null上抛出的最明显的异常 谢谢仅当发现方法的参数为空时才应使用: public void MyMethod(MyClass cannotBeNull) { if (cannotBeNull == null) { throw new ArgumentNullException("cannotBeNull"); } // Do something useful

当有空值时抛出ArgumentNullException()是个好主意吗?线程没有提到在null上抛出的最明显的异常

谢谢

仅当发现方法的参数为空时才应使用:

public void MyMethod(MyClass cannotBeNull)
{
    if (cannotBeNull == null)
    {
        throw new ArgumentNullException("cannotBeNull");
    }
    // Do something useful
}
仅当发现方法的参数为null时才应使用:

public void MyMethod(MyClass cannotBeNull)
{
    if (cannotBeNull == null)
    {
        throw new ArgumentNullException("cannotBeNull");
    }
    // Do something useful
}

事实上,你是在倒读,另一个场景是这样的:

如果我期望一个空值并得到一个定义的值

如果你看一下,它是专门为

当一个空引用(在Visual Studio中为Nothing)时引发的异常 Basic)传递给执行以下操作的方法 不接受它作为有效的参数

我期待一个空值,我得到了一些东西

vs

我期待着什么,但我得到了零

也就是说,没有理由你不能,或者不应该,创造你自己的

public class IWantANullException:Exception 

你想怎么扔就怎么扔。

事实上,你是在倒着看,另一个场景是这样的:

如果我期望一个空值并得到一个定义的值

如果你看一下,它是专门为

当一个空引用(在Visual Studio中为Nothing)时引发的异常 Basic)传递给执行以下操作的方法 不接受它作为有效的参数

我期待一个空值,我得到了一些东西

vs

我期待着什么,但我得到了零

也就是说,没有理由你不能,或者不应该,创造你自己的

public class IWantANullException:Exception 

不管你想以什么方式抛出它。

在这条线索中,问题的提问者期望一个空值作为参数(正如评论所暗示的那样)。在这种特定情况下,这不是一个异常场景,他希望在参数为非null时抛出一个异常。在该线程中,问题的提问者希望参数为null(正如注释所示,这确实是一种味道)。在这种特定情况下,这不是异常场景,他希望在参数为非Null时引发异常。请参阅代码分析规则。请参阅代码分析规则。