在.NET中,如果值为Integer.MinValue或Integer = 0(假设0不是有效值),是否更适合为Integer抛出参数null异常?
答案 0 :(得分:8)
除非参数实际上是 null ,否则抛出ArgumentNullException是不合适的。改为抛出ArgumentOutOfRangeException(最好带有一条消息,告知用户实际可以接受哪些int值)。
调用方法时,抛出ArgumentOutOfRangeException ,并且至少有一个传递给方法的参数不是空引用(在Visual Basic中 Nothing ),而不是包含有效值。
答案 1 :(得分:2)
好吧,我想如果你使用的是int,那么最好说InvalidArgumentException。
或者,你可以通过将它们声明为 int?来使你的INT可以为空(特别是如果你期望int的空值。)
答案 2 :(得分:0)
如果参数不为null,则不要抛出ArgumentNullException
。抛出ArgumentException
,explained here.
编辑: ArgumentOutOfRangeException
可能会更好,正如Avenger546上面所建议的那样。