tengo una clase que envuelve Lista <>¿Debo arrojar mi propia ArgumentOutOfRangeException o permitir que una burbuja suba desde abajo?
tengo GetValue por el método de índice:
public RenderedImageInfo GetValue(int index)
{
list[index].LastRetrieved = DateTime.Now;
return list[index];
}
Si el usuario solicita un índice que está fuera de rango, esto generará un ArgumentOutOfRangeException.
¿Debo dejar que esto suceda o verificarlo y lanzar el mío? es decir,
public RenderedImageInfo GetValue(int index)
{
if (index >= list.Count)
{
throw new ArgumentOutOfRangeException("index");
}
list[index].LastRetrieved = DateTime.Now;
return list[index];
}
En el primer escenario, el usuario tendría una excepción de la lista interna, que rompe mi objetivo programación orientada a objetos del usuario sin necesidad de saber acerca de los objetos subyacentes.
Pero en el segundo caso, siento que estoy agregando código redundante.
Editar:
Y ahora que lo pienso, ¿qué pasa con una tercera escenario, donde cojo la excepción interna, modificarlo y volver a lanzar él?
Sugeriría encarecidamente en contra de su tercer escenario. – TrueWill
@TrueWill, ¿puede indicar una razón por la cual? –
No es bueno modificar una excepción existente: eso realmente será un comportamiento inesperado (y mucho menos imposible sin reflexión, ya que no hay un establecedor de propiedades para ParamName): http://msdn.microsoft.com/en-us/library/system .argumentexception.paramname.aspx –