当序列长度不同时抛出哪个异常

时间:2012-07-03 17:39:03

标签: c# exception

我重新实施Enumerable.Zip(我称之为Merge)。它与原始版本相同,除非一个枚举器的MoveNext在另一个之前返回false(表示序列的长度不同),它会抛出异常。

我的问题是:BCL扔到这里最合适的例外是什么? (我希望这能够模仿Enumerable(LINQ)函数的其余部分。)

1 个答案:

答案 0 :(得分:3)

我认为,因为你的第二个数组将是一个参数。所以

System.ArgumentOutOfRangeException

当(通常是数字)参数太大或太小时抛出的ArgumentException的子类。例如,将负数传递给只接受正值的函数时会抛出此值。

或者可能是

System.InvalidOperationException

当对象的状态不适合成功执行的方法时抛出,而不管任何特定的参数值。示例包括读取未打开的文件或从枚举数中获取下一个元素,其中基础列表已在迭代的中途进行了修改。