C'è qualche differenza comportamentale tra:throw new Exception vs blocco Catch
if (s == null) // s is a string
{
throw new NullReferenceException();
}
E:
try
{
Console.Writeline(s);
}
catch (NullReferenceException Ex)
{ // logic in here
}
Entrambi generano eccezioni di oggetto null, se s è nullo. Il primo esempio è più leggibile in quanto mostra esattamente dove si verifica l'errore (il bit di eccezione si trova proprio accanto alla linea che causerà l'eccezione).
Ho visto questo stile di codifica molto su vari blog da vari programmatori di tutti i tipi di livelli di abilità, ma perché non eseguire solo la logica principale controllando se s non è nullo e quindi salvare l'eccezione da essere mai sollevato? C'è un lato negativo di questo approccio?
Grazie
+1 Buona domanda –