Mam fragment kodu, który można przedstawić jako:
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.
}
}
}
Teraz zastanawiam się, czy jest to właściwe podejście, czy powinienem rzucić wyjątek. Mogę uniknąć wyjątku, ponieważ zwracanie byłoby tym samym, co iteracja po pustej kolekcji, co oznacza, że i tak żaden ważny kod nie jest wykonywany, ale z drugiej strony prawdopodobnie ukryję gdzieś problemy w kodzie, ponieważ dlaczego ktoś miałby dzwonić DeleteItems
z null
parametrem? Może to oznaczać, że w kodzie występuje problem.
Jest to problem, który zwykle mam z metodami w usługach, ponieważ większość z nich coś robi i nie zwraca wyniku, więc jeśli ktoś przekaże nieprawidłowe informacje, usługa nie ma nic do zrobienia, więc zwraca.