¿Hay alguna diferencia de comportamiento entre:tiro nueva excepción vs bloque Catch
if (s == null) // s is a string
{
throw new NullReferenceException();
}
Y:
try
{
Console.Writeline(s);
}
catch (NullReferenceException Ex)
{ // logic in here
}
Ambas excepciones tiro de objeto nulo, si s es nulo. El primer ejemplo es más legible ya que muestra exactamente dónde se produce el error (el bit de excepción está justo al lado de la línea que causará la excepción).
He visto este estilo de codificación mucho en varios blogs por diferentes codificadores de todo tipo de niveles de habilidad, pero ¿por qué no llevar a cabo la lógica principal comprobando si s no es nulo y así ahorrar la excepción de alguna vez ser levantado? ¿Hay algún inconveniente en este enfoque?
Gracias
+1 Buena pregunta –