Rexx প্রোগ্রামিং ভাষায় Exception Handling ব্যবহৃত হয় যখন কোনো প্রোগ্রামে ত্রুটি বা সমস্যা ঘটতে পারে। Rexx-এর ইনবিল্ট signal এবং trap কমান্ডগুলি ব্যবহৃত হয় ত্রুটি সনাক্ত এবং সেই অনুযায়ী কর্মসূচী গ্রহণ করার জন্য।
যখন Custom Exception Handling তৈরি করতে হয়, তখন আমরা signal এবং trap কমান্ড ব্যবহার করে নির্দিষ্ট ত্রুটির জন্য কাস্টম ত্রুটি বা এক্সেপশন তৈরি করতে পারি।
Exception Handling-এর মূল ধারণা:
trapকমান্ড: এটি প্রোগ্রামে ত্রুটি বা এক্সেপশন সনাক্ত করার জন্য ব্যবহৃত হয়। যখন কোনো ত্রুটি ঘটে, তখন এটি নির্দিষ্ট স্থানে চলে যায় যেখানেtrapনির্দেশ করা হয়।signalকমান্ড: এটি ত্রুটি ঘটলে প্রোগ্রামের একটি নির্দিষ্ট অংশে গমন করার জন্য ব্যবহৃত হয়।
Custom Exception Handling Example in Rexx:
ধরা যাক, আমরা একটি ফাংশন তৈরি করছি যা দুইটি সংখ্যা গ্রহণ করে তাদের ভাগফল বের করবে। যদি দ্বিতীয় সংখ্যা ০ হয়, তবে এটি একটি কাস্টম এক্সেপশন তৈরি করবে।
উদাহরণ:
/* Custom Exception Handling Example */
/* প্রথমে ট্র্যাপ সেট করা হবে */
trap errorHandler
/* Divide ফাংশন যা দুইটি সংখ্যা ভাগ করবে */
divide: procedure
parse arg num1 num2
/* কাস্টম এক্সেপশন তৈরি করা হবে যদি num2 = 0 হয় */
if num2 = 0 then
signal divideError /* 'divideError' এক্সেপশন ঘটলে signal হবে */
return num1 / num2
/* Error Handler যা divideError সিগন্যাল শনাক্ত করবে */
errorHandler: procedure
parse arg errorCode
if errorCode = 'divideError' then
say 'Error: Division by zero is not allowed!'
else
say 'An unknown error occurred!'
/* ভাগফল হিসাব করার চেষ্টা */
result = divide(10, 0) /* এখানে ভাগফল ০ দিয়ে হবে, সুতরাং error ঘটবে */
say 'Result: ' resultব্যাখ্যা:
trap errorHandler: এটি প্রোগ্রামের ত্রুটির জন্য একটি "errorHandler" প্রোসিজার ব্যবহার করছে।signal divideError: যখন দ্বিতীয় সংখ্যা ০ হয়, তখনdivideErrorসিগন্যাল চলে যায় এবং ত্রুটি হ্যান্ডলার চালু হয়।errorHandler: procedure: যদি ত্রুটি ঘটে, এটি ত্রুটির ধরন চেক করে এবং কাস্টম মেসেজ প্রদান করে, যেমন "Error: Division by zero is not allowed!"।
আউটপুট:
Error: Division by zero is not allowed!
Result: Debugging in Rexx
Rexx-এ ডিবাগিংয়ের জন্য কিছু টুলস এবং কৌশল রয়েছে যা কোডের ভুল সনাক্ত করতে এবং প্রোগ্রামের আচরণ বিশ্লেষণ করতে সাহায্য করে। Rexx-এ trace কমান্ড একটি শক্তিশালী ডিবাগিং টুল হিসেবে ব্যবহৃত হয়।
trace কমান্ড:
trace কমান্ডটি Rexx কোডের চলমান প্রক্রিয়া ট্র্যাক করার জন্য ব্যবহৃত হয়। এটি কোডের প্রতিটি স্টেটমেন্টের আগে এবং পরে এর মান দেখায়। এর মাধ্যমে আপনি কোডের প্রতিটি অংশে কি ঘটছে তা সহজে দেখতে পারেন।
Debugging Example in Rexx:
/* Debugging Example with trace command */
/* ট্রেস চালু করা */
trace
/* দুইটি সংখ্যা যোগফল বের করার ফাংশন */
addNumbers: procedure
parse arg num1 num2
result = num1 + num2
return result
/* ফাংশন কল এবং ডিবাগ */
total = addNumbers(10, 20)
say 'Total: ' total
/* আরেকটি ফাংশন */
subtractNumbers: procedure
parse arg num1 num2
result = num1 - num2
return result
/* ফাংশন কল */
difference = subtractNumbers(20, 10)
say 'Difference: ' differenceব্যাখ্যা:
trace: এটি কোডে যেখানে যেখানে কমান্ড এক্সিকিউট হবে, সেগুলো ট্র্যাক করতে সাহায্য করবে। ডিবাগিংয়ের জন্য এটি কার্যকরী, কারণ এটি কোডের প্রতিটি ধাপের পূর্ব এবং পরবর্তী মান দেখায়।
আউটপুট:
addNumbers(10, 20)
result = 10 + 20
return result
Total: 30
subtractNumbers(20, 10)
result = 20 - 10
return result
Difference: 10ডিবাগিংয়ের মাধ্যমে আপনি দেখতে পারবেন কোডের কোন অংশে কী ঘটছে এবং কী মান ব্যবহৃত হচ্ছে।
সারাংশ:
- Custom Exception Handling: Rexx-এ কাস্টম এক্সেপশন হ্যান্ডলিংয়ের জন্য
trapএবংsignalকমান্ড ব্যবহার করা হয়।trapব্যবহার করে ত্রুটি সনাক্ত করা এবংsignalএর মাধ্যমে নির্দিষ্ট অংশে প্রবাহ পাঠানো যায়। - Debugging: Rexx কোডে ডিবাগিংয়ের জন্য
traceকমান্ড ব্যবহৃত হয়, যা কোডের প্রতিটি স্টেপ এবং তার মান প্রদর্শন করে, যাতে কোডের সমস্যা সনাক্ত করা সহজ হয়।
এভাবে, Custom Exception Handling এবং Debugging Rexx-এ ত্রুটি সনাক্তকরণ এবং সমস্যা সমাধানের জন্য কার্যকরী পদ্ধতি হিসেবে ব্যবহৃত হয়।
Read more