0

只是为了最佳实践而在这里寻求一些建议。

我有一个布尔方法,可以检查数组中每个元素的特定条件。数组参数不能为空,也不能包含空值,否则返回 true 或 false 都没有意义。

最佳实践表明,如果将无效参数传递给方法,则应抛出 ArgumentException(或派生的)。如果数组参数为空,该方法将抛出 ArgumentNullException。但是,我不太确定应该为空数组或包含空值的数组抛出什么。

我最初的想法是抛出一个简单的 ArgumentException 并附上一条解释问题性质的消息,但一位同事建议我改为抛出一个 ArgumentOutOfRangeException。

我通常认为 ArgumentOutOfRangeException 是“太高”或“太低”的东西。我的同事似乎相信它也可以代表“不够”和“缺少的东西”。

他是对的吗?或者我应该遵循我的第一个想法并抛出 ArgumentException?

4

1 回答 1

1

MSDN声明您应该在参数不为空的情况下抛出 ArgumentOutOfRangeException。所以这不是一个合适的异常类型在这里抛出。

您提到您还想检查数组是否为空。如果你这样做,那么抛出 ArgumentNullException 也不合适。

这会给您留下 ArgumentException。

于 2013-07-23T18:30:54.490 回答