Ho un pezzo di codice che può essere rappresentato come:
public class ItemService {
public void DeleteItems(IEnumerable<Item> items)
{
// Save us from possible NullReferenceException below.
if(items == null)
return;
foreach(var item in items)
{
// For the purpose of this example, lets say I have to iterate over them.
// Go to database and delete them.
}
}
}
Ora mi chiedo se questo è l'approccio giusto o devo gettare un'eccezione. Posso evitare l'eccezione, perché il ritorno sarebbe lo stesso di un'iterazione su una raccolta vuota, il che significa che nessun codice importante viene eseguito comunque, ma d'altra parte probabilmente nascondo problemi da qualche parte nel codice, perché perché qualcuno dovrebbe voler chiamare DeleteItems
con null
parametro? Ciò può indicare che c'è un problema da qualche altra parte nel codice.
Questo è un problema che di solito ho con i metodi nei servizi, perché la maggior parte di essi fa qualcosa e non restituisce un risultato, quindi se qualcuno passa informazioni non valide non c'è nulla da fare per il servizio, quindi ritorna.