2012-07-03 11 views
5

Reimplementada Enumerable.Zip (la mía se llama Merge). Es lo mismo que el original, excepto si el MoveNext de un enumerador devuelve falso antes que el otro (lo que indica que las secuencias no son de la misma longitud), arroja una excepción.Qué excepción lanzar cuando las longitudes de secuencia no son las mismas

Mi pregunta es: ¿Cuál sería la excepción más apropiada del BCL para lanzar aquí? (Quiero que esto imite de cerca el resto de las funciones Enumerable (LINQ).

+0

Primera persona que quiere una excepción con una perfecta. –

+0

@NikhilAgrawal ¿Hay algo de malo en eso? –

Respuesta

3

Creo que ya que su segundo conjunto será un argumento. Así

System.ArgumentOutOfRangeException 

subclase de ArgumentException que se produce cuando un argumento (normalmente numérica) es demasiado grande o demasiado pequeño. Por ejemplo, esto se produce al pasar un número negativo a una función que solo acepta valores positivos.

o puede ser

System.InvalidOperationException 

inicia cuando el estado de un objeto no es adecuado para un método para ejecutar con éxito, independientemente de cualquier valores de los argumentos particulares. Los ejemplos incluyen leer un archivo sin abrir o obtener el siguiente elemento de un enumerador donde la lista subyacente se ha modificado parcialmente durante la iteración.

+0

FWIW: Fui con 'System.ArgumentOutOfRangeException'. –

Cuestiones relacionadas