আমি জোশের উত্তরের পক্ষে ভোট দিয়েছি , তবে তালিকায় আরও একটি যুক্ত করতে চাই:
সিস্টেম.অনুদ্দীপক অপসারণটি আর্গুমেন্টটি বৈধ হলে ছোঁড়া উচিত, তবে বস্তুটি এমন অবস্থায় রয়েছে যেখানে আর্গুমেন্টটি ব্যবহার করা উচিত নয়।
এমএসডিএন থেকে নেওয়া আপডেট :
যখন অবৈধ যুক্তি ব্যতীত অন্য কোনও কারণে কোনও পদ্ধতিতে ডাকতে ব্যর্থতা ঘটে তখন সেই ক্ষেত্রে অবৈধ অপশন এক্সসেপশন ব্যবহৃত হয়।
ধরা যাক যে আপনার অবজেক্টের একটি পারফরম্যাকশন (এনএমসোমেকশন অ্যাকশন) পদ্ধতি রয়েছে, বৈধ এনএমসোমঅ্যাকশনগুলি ওপেন এবং ক্লোজ। আপনি যদি পর পর দুটি বার পারফর্মএ্যাকশন (এনএমসোমেকশন.অপেন) কল করেন তবে দ্বিতীয় কলটিতে অযৌক্তিকরীক্ষাটি নিক্ষেপ করা উচিত (যেহেতু যুক্তিটি বৈধ ছিল, তবে নিয়ন্ত্রণের বর্তমান অবস্থার জন্য নয়)
যেহেতু আপনি ইতিমধ্যে ডিফেন্সিভ প্রোগ্রামিংয়ের মাধ্যমে সঠিক কাজটি করছেন আমার কাছে উল্লেখ করার মতো অন্য একটি ব্যতিক্রমও হ'ল অবজেক্টডিসপোজড এক্সসেপশন। যদি আপনার অবজেক্টটি আইডিস্পোজেবল কার্যকর করে তবে আপনার সর্বদা নিষ্পত্তিযোগ্য স্থিতির ট্র্যাকিং একটি বর্গ ভেরিয়েবল হওয়া উচিত; যদি আপনার অবজেক্টটি নিষ্পত্তি করা হয় এবং কোনও পদ্ধতি এটির জন্য আহ্বান করা হয় তবে আপনি অবজেক্টডিসপোজড এক্সপ্লেশনটি উত্থাপন করুন:
public void SomeMethod()
{
If (m_Disposed) {
throw new ObjectDisposedException("Object has been disposed")
}
// ... Normal execution code
}
হালনাগাদ: আপনার ফলোআপের জবাব দেওয়ার জন্য: এটি একটি অস্পষ্ট পরিস্থিতি কিছুটা, এবং একটি জেনেরিক দ্বারা (। নেট জেনারিক্স অর্থে নয়) ডেটা টাইপ নির্দিষ্ট নির্দিষ্ট উপাত্ত উপস্থাপনের জন্য ব্যবহৃত হচ্ছে যা কিছুটা জটিল করে তোলে; একটি এনাম বা অন্য দৃ strongly়ভাবে টাইপ করা বস্তুটি আরও আদর্শ ফিট হতে পারে - তবে আমাদের সর্বদা এই নিয়ন্ত্রণ থাকে না।
আমি ব্যক্তিগতভাবে আর্গুমেন্টআউটঅফরেঞ্জএক্সসেপ্টের দিকে ঝুঁকতে এবং একটি বার্তা সরবরাহ করব যা বৈধ মানগুলি 1-12 বলে নির্দেশ করে। আমার যুক্তিটি হ'ল আপনি যখন মাসগুলি সম্পর্কে কথা বলছেন, ধরে নিচ্ছেন মাসের সমস্ত পূর্ণসংখ্যার উপস্থাপনাটি বৈধ, তবে আপনি 1-12 এর মধ্যে সীমার মান আশা করছেন। যদি কেবলমাত্র কয়েক মাস (31 মাসের মতো মাসগুলি) বৈধ হয় তবে আপনি প্রতি সীমাতে কোনও রেঞ্জের সাথে লেনদেন করবেন না এবং আমি একটি জেনেরিক আর্গুমেন্ট এক্সসেপশন নিক্ষেপ করব যা বৈধ মানগুলিকে নির্দেশ করে এবং আমি পদ্ধতিটির মন্তব্যে সেগুলিও নথিভুক্ত করব।