2012-07-03 20 views
5

Enumerable.Zip(私はMergeと呼ばれます)を再実装しました。ある列挙子のMoveNextが他の列の前にfalseを返す(シーケンスが同じ長さでないことを示す)場合を除き、例外をスローします。シーケンス長が同じでない場合にスローする例外

私の質問です:BCLからここに投げられる最も適切な例外は何ですか? (これは、これをEnumerable(LINQ)関数の残りの部分に酷似させたい)

+0

例外を完璧なものにしたい最初の人。 –

+0

@NikhilAgrawalに何か問題がありますか? –

答えて

3

2番目の配列は引数になると思う。したがって

(通常数値の)引数が大きすぎるか小さすぎる場合にスローされるArgumentExceptionのサブクラスです。たとえば、正の値のみを受け入れる関数に負の数を渡すときにスローされます。

またはオブジェクトの状態が正常にかかわらず、任意の特定の引数の値を、実行する方法には適していない場合にスローされ

System.InvalidOperationException 

であってもよいです。例としては、開かれていないファイルの読み込みや、反復処理の途中で根本的なリストが変更された列挙子から次の要素を取得するなどがあります。

+0

FWIW:私は 'System.ArgumentOutOfRangeException'と一緒に行きました。 –

関連する問題