আমি বেশ কয়েকটি গেম সম্পর্কে সচেতন যা সি ++ তে লেখা আছে তবে ব্যতিক্রমগুলি ব্যবহার করে না। যেহেতু সি ++ তে মেমরি বরাদ্দ ব্যর্থতা হ্যান্ডলিংটি সাধারণত std::bad_alloc
ব্যতিক্রমকে ঘিরে তৈরি করা হয় , এই গেমগুলি এই জাতীয় ব্যর্থতা কীভাবে পরিচালনা করবে?
এগুলি কি কেবল ক্র্যাশ করে, না-মেমরির বাইরে থাকা ত্রুটিটি হ্যান্ডেল করার এবং পুনরুদ্ধার করার কোনও অন্য উপায় আছে?
std::terminate
এবং এটিই। কিন্তু তারপরে একই বিধিনিষেধের অধীনে বরাদ্দ কোনও ব্যতিক্রম ছোঁড়ার পরিবর্তে নাল পয়েন্টারটি ফিরিয়ে দিতে পারে এবং ফলাফলটি পৃথকভাবে চেক এবং পরিচালনা করা যায়।
ClassName variableName = new(nothrow) ClassName();
( স্পষ্টতই শ্রেণীর নাম, ভেরিয়েবল নাম ইত্যাদি প্রতিস্থাপন করুন ) তারপরে, যদি বরাদ্দ ব্যর্থ হয়, তবে if(!variableName)
চেষ্টা-ব্যতিক্রম ব্যতিক্রম ছাড়াই ত্রুটিটি পরিচালনা করার অনুমতি দিয়ে আপনি এটি সনাক্ত করতে পারবেন । একইভাবে, যদি মেমরি মত একটি ফাংশন ব্যবহার করে বরাদ্দ করা হয় malloc()
, calloc()
বরাদ্দ করা ব্যর্থতা ইত্যাদি তারপর একই ব্যবহার সনাক্ত করা যাবে if(!variableName)
ব্যবহার করে দেখুন-ধরা ছাড়াই পদ্ধতি। গেমগুলি কীভাবে এই ত্রুটিগুলি পরিচালনা করে, ঠিক সেই মুহূর্তে, এটি ক্র্যাশ হয় কিনা তা গেমস নির্ভর করে।