Perché dovrei mai generare eccezioni nel codice? (eccetto per uno scenario specifico in cui sto sviluppando una libreria di classi che i consumatori di esso, non vorranno / saranno in grado di cambiare).
Per essere più specifici, c'è qualche ragione per farlo:
class EmailSender
{
public void SendEmail(string recipient, string subject, string content)
{
if (string.IsNullOrEmpty(recipient))
{
throw new ArgumentNullException("exception text...");
}
// Send the email
}
}
Al posto di questo:
class EmailSender
{
public bool SendEmail(string recipient, string subject, string content)
{
bool result = false;
try
{
if (string.IsNullOrEmpty(recipient))
{
logger.Error("Error text...");
}
else
{
// Send the email
result = true;
}
}
catch (Exception ex)
{
logger.Error(ex);
}
return result;
}
}
Considera che questa classe è un codice interno e non qualcosa che spedirò come una DLL o un progetto open source.