Saya ingin mencegah pemrosesan lebih lanjut pada objek jika itu nol.
Dalam kode berikut ini saya memeriksa apakah objek tersebut null oleh:
if (!data.Equals(null))
dan
if (data != null)
Namun, saya menerima NullReferenceException
di dataList.Add(data)
. Jika objek itu nol, seharusnya tidak pernah masukif
pernyataan!
Jadi, saya bertanya apakah ini cara yang tepat untuk memeriksa apakah suatu objek adalah nol:
public List<Object> dataList;
public bool AddData(ref Object data)
bool success = false;
try
{
// I've also used "if (data != null)" which hasn't worked either
if (!data.Equals(null))
{
//NullReferenceException occurs here ...
dataList.Add(data);
success = doOtherStuff(data);
}
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
return success;
}
Jika ini adalah cara yang tepat untuk memeriksa apakah objek tersebut null, apa yang saya lakukan salah (bagaimana saya bisa mencegah pemrosesan lebih lanjut pada objek untuk menghindari NullReferenceException)?
!= null
cek nol Anda. .Equals
akan selalu melempar eksepsi jika objeknya nol.
throw e;
tidak jauh lebih baik. throw;
, di sisi lain ...
e.ToString()
akan menghasilkan string yang tidak hanya mencakup pesan kesalahan, tetapi juga semua InnerExceptions
dan jejak stack. Jadi itu semacam pesan pengecualian yang sangat berat. Jika Anda (benar!) Ingin menyimpan informasi ini, dan tetap di tempatnya, gunakan saja throw;
.
throw e;
versusthrow new Exception(e.ToString());