5

我重新实现了Enumerable.Zip(我的被称为Merge)。它与原始的相同,除非一个枚举MoveNext器在另一个之前返回 false(表明序列的长度不同),它会引发异常。

我的问题是:从BCL中抛出的最合适的例外是什么?(我希望它能够密切模仿其余的Enumerable(LINQ)功能。)

4

1 回答 1

3

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

System.ArgumentOutOfRangeException

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

或者可能

System.InvalidOperationException

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

于 2012-07-03T17:43:38.363 回答