2012-07-03 9 views
5

Ponownie zaimplementowano Enumerable.Zip (moja nazwa to Merge). Jest taki sam jak oryginał, z wyjątkiem sytuacji, gdy jeden z wyliczników MoveNext zwraca wartość false przed innymi (wskazując, że sekwencje nie mają tej samej długości), zgłasza wyjątek.Który wyjątek do rzucania, gdy długości sekwencji nie są takie same

Moje pytanie brzmi: Jaki byłby najodpowiedniejszy wyjątek od BCL do wyrzucenia tutaj? (Chcę to dokładnie naśladować pozostałe funkcje Enumerable (LINQ).)

+0

Pierwsza osoba, która chce wyjątku z doskonałym. –

+0

@NikhilAgrawal Czy coś jest z tym nie tak? –

Odpowiedz

3

Myślę, że ponieważ twoja druga tablica będzie argumentem. Podklasa ArgumentException, która jest generowana, gdy argument (zwykle numeryczny) jest zbyt duży lub zbyt mały. Na przykład jest to zgłaszane podczas przekazywania liczby ujemnej do funkcji, która akceptuje tylko wartości dodatnie.

lub mogą być

System.InvalidOperationException 

generowany, kiedy stan obiektu nie nadaje się do sposobu z powodzeniem zrealizować, niezależnie od poszczególnych wartości argumentu. Przykłady obejmują czytanie nieotwartego pliku lub uzyskanie następnego elementu z modułu wyliczającego, w którym podstawowa lista została zmodyfikowana w trakcie iteracji.

+0

FWIW: Poszedłem z 'System.ArgumentOutOfRangeException'. –

Powiązane problemy