正如我的问题所述,我想知道c#Exceptions中 Argument 和 ArgumentNull 异常之间的逻辑区别是什么。
谢谢
答案 0 :(得分:3)
来自Docs:
调用方法时至少抛出一个方法时抛出ArgumentException 传递的参数不符合参数规范 被叫方法。 ParamName属性标识无效 参数。
ArgumentException的主要派生类是 ArgumentNullException 和 ArgumentOutOfRangeException 。这些派生 应该使用类而不是 ArgumentException ,除了 两个派生类都不可接受的情况。对于 例如,应该抛出异常:
- 当参数的值超出可接受值的范围时,
ArgumentNullException 每当将null传递给不接受它作为有效参数的方法时。
ArgumentOutOfRangeException ;例如,当值 " 46"在创建a期间作为month参数传递 日期时间。
换句话说:
ArgumentException
表示至少有一个参数规范无效。它并不意味着它是 NULL ,它可以是任何不满足的规则。 ArgumentNullException
只是一个特殊情况,当规则是参数不是 NULL