ধরা যাক আমার একটি পদ্ধতি রয়েছে:
public void DoSomething(ISomeInterface someObject)
{
if(someObject == null) throw new ArgumentNullException("someObject");
someObject.DoThisOrThat();
}
আমি বিশ্বাস করতে প্রশিক্ষিত হয়েছি যে এটি নিক্ষেপ ArgumentNullException
করা "সঠিক" তবে একটি "অবজেক্ট রেফারেন্স কোনও অবজেক্টের উদাহরণে সেট করা হয়নি" ত্রুটির অর্থ আমার একটি বাগ রয়েছে।
কেন?
আমি জানি যে আমি যদি রেফারেন্সটি ক্যাশে করেছিলাম someObject
এবং এটি পরে ব্যবহার করছি, তবে পাস করার সময় নালিশতা যাচাই করা ভাল এবং তাড়াতাড়ি ব্যর্থ হওয়া ভাল। যাইহোক, আমি যদি পরের লাইনে এটি ডিগ্রিফার করছি তবে আমাদের চেকটি কেন করা উচিত? এটি একরকম বা অন্যভাবে ব্যতিক্রম ছুঁড়ে ফেলছে।
সম্পাদনা করুন :
এটি আমার কাছে কেবল ঘটেছে ... অবহেলিত শূন্যতার ভয় কি সি ++ এর মতো ভাষা থেকে আসে যা আপনার জন্য পরীক্ষা করে না (যেমন এটি কেবল মেমরির অবস্থান শূন্য + পদ্ধতিতে অফসেটে কিছু পদ্ধতি চালানোর চেষ্টা করে)?