2012-07-03 13 views
5

Ho implementato nuovamente Enumerable.Zip (il mio è chiamato Merge). È uguale all'originale, tranne nel caso in cui MoveNext di un enumeratore restituisca false prima dell'altro (indicando che le sequenze non hanno la stessa lunghezza), genera un'eccezione.Quale eccezione da lanciare quando le lunghezze delle sequenze non sono le stesse

La mia domanda è: quale sarebbe l'eccezione più appropriata da BCL da buttare qui? (Voglio che questo imita da vicino il resto delle funzioni Enumerable (LINQ).)

+0

Prima persona che vuole un'eccezione con una perfetta. –

+0

@NikhilAgrawal c'è qualcosa di sbagliato in questo? –

risposta

3

Penso che dal momento che il secondo array sarà un argomento. Così

System.ArgumentOutOfRangeException 

sottoclasse di ArgumentException che viene generata quando un (di solito numerico) argomento è troppo grande o troppo piccolo. Ad esempio, questo viene generato quando si passa un numero negativo in una funzione che accetta solo valori positivi.

o possono essere

System.InvalidOperationException 

generata quando lo stato di un oggetto è adatto per un metodo di eseguire con successo, indipendentemente da particolari valori degli argomenti. Gli esempi includono la lettura di un file non aperto o il recupero dell'elemento successivo da un enumeratore in cui l'elenco sottostante è stato modificato a metà dell'iterazione.

+0

FWIW: Sono andato con 'System.ArgumentOutOfRangeException'. –

Problemi correlati