У мене є фрагмент коду, який можна представити як:
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.
}
}
}
Тепер мені цікаво, чи це правильний підхід чи варто кинути виняток. Я можу уникати винятку, тому що повернення було б таким самим, як ітерація над порожньою колекцією, тобто жоден важливий код не виконується, але з іншого боку я, можливо, приховую проблеми десь у коді, бо чому б хто хотів зателефонувати DeleteItems
з null
параметром? Це може вказувати на те, що в коді є проблема десь ще.
Ця проблема, як правило, у мене з методами в сервісах, тому що більшість з них щось робить і не повертає результат, тому якщо хтось передає недійсну інформацію, то сервісу нічого не робити, тому вона повертається.