2011-04-23 78 views
1

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

感谢

+0

在那个线程中,问题的提问者期待null作为参数,但是(正如注释所暗示的那样)。在特定情况下,它不是一个例外情况,他希望在参数非空时引发异常 – 2011-04-23 01:20:35

回答

6
当参数的方法被发现是空

ArgumentNullException应该只用于:

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

请参阅代码分析规则[CA1062:验证公共方法的参数](https://msdn.microsoft.com/zh-cn/ -us /库/ ms182182.aspx)。 – DavidRR 2016-04-05 15:19:01

0

其实你向后读它,其他之情况有拥有的情况:

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

如果你看一下MSDN: ArgumentNullException它是专门为

当空引用(在Visual 基本为Nothing)传递给方法时引发,它 不接受它作为一个例外有效的论点。

我期待着一个空的,我得到的东西

我期待的东西,我得到空

也就是说,没有任何理由,你不能,或不应该,创建你自己的

public class IWantANullException:Exception 

并以任何你想要的方式扔掉它。

相关问题