C#:
ত্রুটিগুলি পরিচালনা করা
কিভাবে:
চলুন একটি try-catch ব্লক দিয়ে শুরু করি। এটা যেন একজন দড়িতে হাঁটা শিল্পীর নিচে একটি নিরাপত্তা জাল পাতা। যদি তারা পিছলে যায়, তবে তারা পড়ে না—তারা ধরা পড়ে।
ব্যবহার করুন System;
শ্রেণী ত্রুটি সম্পর্কে উদাহরণ {
স্থির void Main() {
চেষ্টা করুন {
int[] সংখ্যা = {1, 2, 3};
Console.WriteLine(সংখ্যা[5]); // ওপস, সূচক সীমার বাইরে!
} ধরুন (IndexOutOfRangeException ই) {
Console.WriteLine("একটি ত্রুটি ধরা পড়েছে: " + ই.বার্তা);
}
}
}
যখন জিনিসগুলি ভুল দিকে যায়:
একটি ত্রুটি ধরা পড়েছে: সূচক অ্যারের সীমানার বাইরে ছিল।
এখন আমরা একটি finally ব্লক যোগ করি—এটা হল যা যাই হোক না কেন ঘটে, যেমন কর প্রদান।
চেষ্টা করুন {
// সম্ভাব্য বিপদজনক কোড এখানে
} ধরুন (কিছু নির্দিষ্ট ত্রুটি ই) {
// সেই নির্দিষ্ট ত্রুটি এখানে সামলান
} সর্বদা {
// এই কোড যা ঘটে তার উপর নির্বিশেষে চলে
Console.WriteLine("এটি সর্বদা চলে।");
}
গভীর সমুদ্র
C# এ ত্রুটি সম্পর্কে তার জন্ম থেকেই ছিল। সময়ের সাথে সাথে, এটি বিবর্তিত হয়েছে। পুরানো দিনে, প্রোগ্রামাররা ফেরত কোড বা গ্লোবাল ফ্ল্যাগে ভরসা করত সমস্যা সংকেত দেওয়ার জন্য—বেঢপ এবং ত্রুটিপূর্ণ।
C# একটি আধুনিক উপায়, অপবাদ ব্যবহার করে। যখন অপ্রত্যাশিত ঘটে, তখন একটি অপবাদ নিক্ষেপ করা হয়, যেমন ফুটবলে খেলায় ফ্ল্যাগ নিক্ষেপ করা। Try, catch, এবং finally ব্লকের সাথে গঠনমূলক অপবাদ সম্পর্কে এই মুহূর্তগুলো পরিচালনা করা পুরানো-স্কুলের ত্রুটি পরীক্ষার চেয়ে স্পষ্ট এবং পরিষ্কার।
বিকল্প? অবশ্যই। অপবাদ যেগুলি ছিটকে পড়ে সেগুলির জন্য ‘UnhandledExceptionEventHandler’ আছে। অথবা অ্যাসিঙ্ক কোডে, ত্রুটি সম্পর্কে কিছুটা উল্টোদিকে যায়, ‘Task’ অবজেক্টগুলি যা নিজেদের অপবাদের বোঝা বহন করে।
বাস্তবায়নের বিস্তারিত বিষয়—যা ছোট ছাপার মতো—গুরুত্বপূর্ণ। অপবাদগুলি খরচবহুল হতে পারে, যদি অবিচারে নিক্ষেপ করা হয়, তবে পারফরম্যান্সকে টানতে পারে। তাই, আমরা তাদের ব্যবহার করি অসামান্য ক্ষেত্রের জন্য, প্রতিদিনের লজিক নিয়ন্ত্রণের জন্য নয়।