কিভাবে C-তে ট্রাই ক্যাচ স্টেটমেন্ট ব্যবহার করবেন

Kibhabe C Te Tra I Kyaca Stetamenta Byabahara Karabena



'ট্রাই' এবং 'ক্যাচ' শব্দগুলি বর্ণনা করে যে যখন একটি প্রোগ্রাম একটি কোড বা ডেটা সমস্যার কারণে একটি ব্যতিক্রমের সম্মুখীন হয় তখন কী করতে হবে। ব্যতিক্রম একটি এ পরিচালিত হয় চেষ্টা করুন কোড ব্লক। ক্যাচ ব্লকগুলি চেষ্টা ব্লকগুলি থেকে ব্যতিক্রমগুলি খুঁজে পেতে এবং পরিচালনা করতে ব্যবহার করা হয়। পাইথন, সি++ এবং জাভাস্ক্রিপ্ট সহ অনেক প্রোগ্রামিং ভাষা অন্তর্ভুক্ত ধরার চেষ্টা কর বিবৃতি

এই নিবন্ধটি প্রদর্শন করে যে একটি ট্রাই-ক্যাচ স্টেটমেন্ট কী এবং এটি কীভাবে সি প্রোগ্রামিং-এ একটি উদাহরণ ব্যবহার করে প্রয়োগ করা হয়।

একটি চেষ্টা ক্যাচ স্টেটমেন্ট কি?

দ্য চেষ্টা করুন বিবৃতি বিবৃতিগুলির একটি সংগ্রহকে সংজ্ঞায়িত করে যা একটি ব্যতিক্রম তৈরি করতে পারে। যখন একটি নির্দিষ্ট ধরণের ব্যতিক্রম ঘটে, তখন ক্যাচ ব্লকটি যেখানে ব্যতিক্রমটি পাঠানো হয়। কম্পাইলার হয় একটি ত্রুটি নোটিশ আউটপুট করবে অথবা ব্যতিক্রমটি কল স্ট্যাক পর্যন্ত ভ্রমণ করতে থাকবে যতক্ষণ না এটির সমাধান করা হয় যদি চেষ্টা/ক্যাচ ব্লক এটি পরিচালনা করতে ব্যর্থ হয়।







এর সাধারণ সিনট্যাক্স ধরার চেষ্টা কর বিবৃতি হিসাবে দেওয়া হয়:



চেষ্টা করুন {
/*
কিছু কোড সন্নিবেশ করান যা সম্ভবত ত্রুটি তৈরি করবে
*/
}
ধরা {
/*
একটি কোড লিখুন জন্য উত্পন্ন ত্রুটিগুলি পরিচালনা করা।
*/
}

C-তে ট্রাই-ক্যাচ স্টেটমেন্ট কি?

C ব্যতিক্রম হ্যান্ডলিং সমর্থন করে না এবং এটি করার জন্য একটি অন্তর্নির্মিত প্রক্রিয়া নেই। যাইহোক, আপনি এটি ব্যবহার করে কিছুটা অনুকরণ করতে পারেন setjmp এবং longjmp কল স্ট্যাকটি একবার পরিদর্শন করার পরে মেমরি প্রকাশ করার উপায় ছাড়াই, ব্যতিক্রম-হ্যান্ডলিং প্রক্রিয়াগুলি অদক্ষ এবং অনিরাপদ, এবং C-এর একটি আবর্জনা সংগ্রহকারী নেই। RAM খালি করার জন্য, আমাদের সম্ভবত প্রসঙ্গ পরিচালকদের সংহত করতে হবে।



এখন, আমরা কোডের উন্নতি করার সাথে সাথে আমরা ধীরে ধীরে একটি সমাধান তৈরি করব। longjmp এবং setjmp হল দুটি C ফাংশন যা setjmp.h হেডার ফাইল দ্বারা সরবরাহ করা যেতে পারে আমাদের দ্বারা ব্যবহার করা হবে। setjmp ফাংশন jmp_buf টাইপ ভেরিয়েবল গ্রহণ করে এবং সরাসরি কল করা হলে 0 প্রদান করে। যখন একই jmp_buf ভেরিয়েবল দুটি ভেরিয়েবলের সাথে longjmp চালু করতে ব্যবহার করা হয়, তখন setjmp ফাংশন একটি মান প্রদান করে যা longjmp এর দ্বিতীয় আর্গুমেন্টের মানের সাথে মেলে।





উপরের বাস্তবায়নের একটি উদাহরণ দেওয়া হল:

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত
# সংজ্ঞায়িত করুন চেষ্টা করুন { jmp_buf buf_state; যদি ( !setjmp(buf_state)) {
#CATCH সংজ্ঞায়িত করুন } অন্য {
# সংজ্ঞায়িত করুন ENDTRY }} যখন(0)
# সংজ্ঞায়িত করুন থ্রো longjmp(buf_state, 1)
int প্রধান ( )
{
চেষ্টা করুন {
printf ( 'বিবৃতি পরীক্ষা করার চেষ্টা করুন \n ' ) ;
নিক্ষেপ;
printf ( 'বিবৃতিটি উপস্থিত হওয়া উচিত নয়, কারণ থ্রো ব্লক ইতিমধ্যেই ব্যতিক্রমটি নিক্ষেপ করেছে৷ \n ' ) ;
}
ক্যাচ {
printf ( 'ব্যতিক্রম পেয়েছি \n ' ) ;
}
শেষ চেষ্টা;
প্রত্যাবর্তন 0 ;
}

উপরের সি প্রোগ্রামে, দ শেষ করার চেষ্টা করুন ফাংশনটি ডু-হোইল ব্লকের ক্লোজিং অংশ প্রদানের জন্য ব্যবহৃত হয়।



উপসংহার

কোনো প্রোগ্রাম চলাকালীন সময়ে কোনো ডেটা বা কোডিং ত্রুটির কারণে কোনো ব্যতিক্রমের সম্মুখীন হলে, “ চেষ্টা করুন ' এবং ' ধরা কিভাবে এটি পরিচালনা করতে হয় তা বর্ণনা করুন। এ চেষ্টা করুন কোড ব্লক, ব্যতিক্রম ঘটবে যখন a ধরা ব্লক হল যেখান থেকে ত্রুটি চেষ্টা করুন ব্লক পাওয়া যায় এবং পরিচালনা করা হয়। অনেক প্রোগ্রামিং ভাষা সমর্থন করে ধরার চেষ্টা কর ব্লক কিন্তু সি করে না। এই গাইড সি প্রোগ্রামিং-এ ট্রাই-ক্যাচ স্টেটমেন্ট ব্যবহার করার একটি পদ্ধতি বর্ণনা করেছে।