Saya memiliki kode yang dapat direpresentasikan sebagai:
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.
}
}
}
Sekarang saya bertanya-tanya apakah ini pendekatan yang tepat atau haruskah saya membuang pengecualian. Saya dapat menghindari pengecualian, karena kembali akan sama dengan mengulangi koleksi kosong, artinya, tidak ada kode penting yang dieksekusi, tetapi di sisi lain saya mungkin menyembunyikan masalah di suatu tempat dalam kode, karena mengapa ada orang yang ingin memanggil DeleteItems
dengan null
parameter? Ini mungkin menunjukkan bahwa ada masalah di tempat lain dalam kode.
Ini adalah masalah yang biasanya saya miliki dengan metode dalam layanan, karena kebanyakan dari mereka melakukan sesuatu dan tidak mengembalikan hasilnya, jadi jika seseorang memberikan informasi yang tidak valid maka tidak ada yang dapat dilakukan oleh layanan, sehingga ia kembali.