只是为了最佳实践而在这里寻求一些建议。
我有一个布尔方法,用于检查数组中每个元素的特定条件。数组参数不能为空,也不能包含空值,否则返回true或false是没有意义的。
Best practices表示如果将无效参数传递给方法,则应抛出ArgumentException(或派生)。如果数组参数为null,则该方法将抛出ArgumentNullException。但是,我不太确定我应该为空数组或包含空值的数组抛出什么。
我最初的想法是抛出一个简单的ArgumentException,其中包含一条解释问题性质的消息,但是一位同事暗示我会抛出一个ArgumentOutOfRangeException。
我通常认为ArgumentOutOfRangeException是“太高”或“太低”的东西。我的同事似乎相信它也可以代表“不够”和“缺少某些东西”。
他是对的吗?或者我应该遵循我的第一个想法并抛出ArgumentException?
答案 0 :(得分:1)
MSDN表示如果参数为非null,则应抛出ArgumentOutOfRangeException。因此,这不是一个适当的异常类型。
您提到您还想检查数组是否为空。如果你这样做,那么抛出ArgumentNullException也是不合适的。
这会让你失去ArgumentException。