আমি যদি কোনও বস্তুটি শূন্য হয় তবে তার আরও প্রসেসিং রোধ করতে চাই।
নিম্নলিখিত কোডে আমি পরীক্ষা করে নিচ্ছি যে কোনওটি দ্বারা অবজেক্টটি বাতিল হয়ে গেছে:
if (!data.Equals(null))
এবং
if (data != null)
যাইহোক, আমি একটি NullReferenceException
এ গ্রহণ dataList.Add(data)
। যদি বস্তুটি শূন্য থাকে তবে এটি কখনও if
স্টেস্টমেন্টে প্রবেশ করা উচিত ছিল না !
সুতরাং, আমি জিজ্ঞাসা করছি যে এটি পরীক্ষা করার কোনও সঠিক উপায় যদি কোনও বস্তু নাল থাকে:
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;
}
যদি এটি পরীক্ষা করার সঠিক উপায়টি অবজেক্টটি শূন্য হয় কিনা, তবে আমি কী ভুল করছি (নালারফেরান এক্সেকশনটি এড়াতে কীভাবে আমি বস্তুর উপর আরও প্রসেসিং আটকাতে পারি)?
!= null
আপনার নাল চেক ব্যবহার করা উচিত । .Equals
যদি বস্তুটি নাল হয় তবে সর্বদা একটি ব্যতিক্রম ছুঁড়ে ফেলা হবে।
throw e;
চেয়ে বেশি ভাল নয়। throw;
অন্যদিকে ...
e.ToString()
একটি স্ট্রিং তৈরি করবে যা কেবল ত্রুটি বার্তা নয়, সমস্ত InnerExceptions
এবং স্ট্যাক ট্রেসকে অন্তর্ভুক্ত করে। সুতরাং এটি খুব চর্বিযুক্ত-ভারী ব্যতিক্রম বার্তা of আপনি যদি (যথাযথভাবে!) এই তথ্যটি সংরক্ষণ করতে চান এবং এটি যেখানে থাকে তেমন রাখুন, সহজভাবে ব্যবহার করুন throw;
।
throw e;
বনাম ব্যবহার করতে হবেthrow new Exception(e.ToString());