Katakanlah saya punya metode:
public void DoSomething(ISomeInterface someObject)
{
if(someObject == null) throw new ArgumentNullException("someObject");
someObject.DoThisOrThat();
}
Saya telah dilatih untuk percaya bahwa melempar ArgumentNullException
is "benar" tetapi "Referensi objek tidak disetel ke instance objek" kesalahan berarti saya memiliki bug.
Mengapa?
Saya tahu bahwa jika saya menyimpan referensi ke someObject
dan menggunakannya nanti, maka lebih baik untuk memeriksa nullity ketika diteruskan, dan gagal lebih awal. Namun, jika saya melakukan dereferensi pada baris berikutnya, mengapa kita harus melakukan pemeriksaan? Ini akan melempar pengecualian dengan satu atau lain cara.
Edit :
Itu baru saja terpikir oleh saya ... apakah ketakutan akan null dereferensi berasal dari bahasa seperti C ++ yang tidak memeriksa Anda (yaitu hanya mencoba menjalankan beberapa metode di lokasi memori nol + metode offset)?