Rexx-এ কোডের মধ্যে ত্রুটি (Error) এবং প্রক্রিয়া বন্ধ (Halt) হ্যান্ডলিং একটি গুরুত্বপূর্ণ বিষয়। Rexx ত্রুটি সনাক্তকরণ এবং ত্রুটি মোকাবেলার জন্য বিভিন্ন বিল্ট-ইন মেকানিজম এবং কন্ট্রোল ফ্লো প্রদান করে। এখানে Rexx-এ ত্রুটি এবং Halt Conditions হ্যান্ডল করার বিভিন্ন পদ্ধতি আলোচনা করা হলো।
1. Error Handling in Rexx (ত্রুটি হ্যান্ডলিং)
Rexx-এ ত্রুটি (Error) হ্যান্ডল করতে signal এবং trap কমান্ড ব্যবহার করা হয়। এই কমান্ডগুলি আপনাকে কোডের মধ্যে ত্রুটি সনাক্ত করতে এবং প্রক্রিয়াটি সঠিকভাবে শেষ করতে সাহায্য করে।
trap কমান্ড:
trap কমান্ডটি এক ধরনের "error handler" হিসেবে কাজ করে। এটি কোনো ত্রুটি ঘটলে কোডের নির্দিষ্ট অংশে চলে যাওয়ার জন্য ব্যবহৃত হয়। এটি সাধারণত একটি লেবেল নির্দেশ করে, যেখানে ত্রুটি ঘটলে প্রোগ্রাম চলে যাবে।
trap error_handler /* ত্রুটি ঘটলে error_handler লেবেলে চলে যাবে */
/* মূল কোড */
a = 10
b = 0
c = a / b /* শূন্য দিয়ে ভাগ করার কারণে ত্রুটি ঘটবে */
say "This line will not be executed if there's an error"
exit
error_handler:
say "Error occurred: Division by zero!"
exitএখানে, trap error_handler নির্দেশনা দেওয়ার পর যদি কোনো ত্রুটি ঘটে (যেমন শূন্য দিয়ে ভাগ করা), প্রোগ্রামটি error_handler লেবেলে চলে যাবে এবং ত্রুটির বার্তা দেখাবে।
signal কমান্ড:
signal কমান্ডটি একটি লেবেলে গমন করার জন্য ব্যবহৃত হয় এবং এটি সাধারণত কিছু পরিস্থিতিতে প্রোগ্রামের কাজ বন্ধ করে অন্য লজিক চালাতে সাহায্য করে।
signal halt_program /* halt_program লেবেলে চলে যাবে */
/* মূল কোড */
say "This will be printed."
signal halt_program /* এটা কল করা হবে প্রোগ্রাম বন্ধ করার জন্য */
halt_program:
say "Program Halted!"
exitএখানে, signal halt_program ব্যবহার করে কোডটি halt_program লেবেলে চলে যাবে এবং প্রোগ্রাম বন্ধ হয়ে যাবে।
2. Halt Conditions (প্রক্রিয়া বন্ধ করার শর্ত)
Rexx-এ একটি প্রক্রিয়া বা কোড নির্দিষ্ট শর্তে বন্ধ করার জন্য exit এবং return কমান্ড ব্যবহার করা হয়।
exit কমান্ড:
exit কমান্ডটি পুরো প্রোগ্রামটি বন্ধ করতে ব্যবহৃত হয়, এবং এটি সাধারণত ত্রুটি বা বিশেষ শর্তে ব্যবহৃত হয়।
if a < 0 then do
say "Negative value, halting program!"
exit 1 /* প্রোগ্রাম বন্ধ করে ১ রিটার্ন করবে */
endএই উদাহরণে, যদি a এর মান ০ এর চেয়ে কম হয়, তাহলে exit কমান্ডটি প্রোগ্রাম বন্ধ করবে এবং একটি কোড রিটার্ন করবে (এখানে ১ রিটার্ন হচ্ছে)।
return কমান্ড:
return কমান্ডটি একটি ফাংশন বা সাবরুটিন থেকে ফিরে যাওয়ার জন্য ব্যবহৃত হয়। এটি বিশেষ করে সাবরুটিন বা ফাংশনে ব্যবহৃত হয়, যাতে ফাংশন বা সাবরুটিনের কার্যক্রম শেষ করা যায়।
halt_program: procedure
say "Stopping execution in this procedure"
return /* ফাংশন বা সাবরুটিন থেকে বেরিয়ে যাবে */এখানে return কমান্ডটি ফাংশন বা সাবরুটিনের কার্যক্রম শেষ করবে এবং প্রোগ্রামে ফিরে আসবে।
3. Try-Catch Block (Rexx এ Error Handling)
Rexx-এর অধিকাংশ সংস্করণে এককভাবে try-catch এর মতো সরাসরি ব্লক সাপোর্ট না থাকলেও, Rexx ত্রুটি হ্যান্ডলিংয়ের জন্য trap এবং signal ব্যবহার করে একই কার্যকরী ফলাফল অর্জন করা যায়। উপরের উদাহরণগুলোতে ত্রুটি হ্যান্ডলিং এর পদ্ধতি দেখানো হয়েছে।
তবে, Rexx-এ ত্রুটি সনাক্তকরণের জন্য trap ব্যবহার করে নিম্নলিখিতভাবেও কোড লেখা যায়:
trap 100 /* 100 লেবেলে ত্রুটি সনাক্ত করবে */
/* মূল কোড */
a = 5
b = 0
result = a / b /* শূন্য দিয়ে ভাগ */
say result
100:
say "Error occurred: Division by zero!"
exitএখানে, যখন শূন্য দিয়ে ভাগ করা হবে, তখন প্রোগ্রামটি 100 লেবেলে চলে যাবে এবং ত্রুটির বার্তা প্রদর্শন করবে।
সারাংশ:
- Error Handling: Rexx-এ ত্রুটি হ্যান্ডলিং করার জন্য
trapএবংsignalকমান্ড ব্যবহার করা হয়।trapনির্দিষ্ট লেবেলে ত্রুটি পাঠানোর কাজ করে, এবংsignalপ্রোগ্রামের নির্দিষ্ট অংশে গমন করতে সাহায্য করে। - Halt Conditions: প্রোগ্রাম বন্ধ করার জন্য
exitকমান্ড ব্যবহার করা হয়, যা প্রোগ্রামটি শেষ করে একটি কোড রিটার্ন করে।returnসাধারণত ফাংশন বা সাবরুটিন থেকে ফিরে যাওয়ার জন্য ব্যবহৃত হয়। - Error Management: Rexx ত্রুটি ম্যানেজমেন্টে খুবই সহজ, এবং এটি স্বয়ংক্রিয়ভাবে একটি সহজ ত্রুটি হ্যান্ডলিং স্ট্রাকচার দেয়, যা ত্রুটি ঘটলে দ্রুত প্রতিক্রিয়া জানায়।
এভাবে Rexx প্রোগ্রামিংয়ে ত্রুটি এবং প্রক্রিয়া বন্ধ করার শর্তগুলি সহজেই হ্যান্ডল করা যায়।
Read more