প্যাসক্যাল ভাষায়, এক্সপশন হ্যান্ডলিং সাধারণত try..except ব্লক দিয়ে করা হয়, যা কোডের ত্রুটি বা এক্সপশন ধরা এবং সেগুলিকে সঠিকভাবে হ্যান্ডল করার জন্য ব্যবহৃত হয়। কখনও কখনও প্রোগ্রামে কিছু নির্দিষ্ট পরিস্থিতি বা ত্রুটির জন্য কাস্টম এক্সপশন তৈরি করা প্রয়োজন হয়। প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি এবং হ্যান্ডল করার জন্য আপনাকে কিছু অতিরিক্ত ধাপ অনুসরণ করতে হবে।
কাস্টম এক্সপশন তৈরি করা
প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি করতে হলে প্রথমে একটি নতুন Exception Class তৈরি করতে হয়, যা Exception ক্লাস থেকে উত্তরাধিকার (inheritance) নেয়।
কাস্টম এক্সপশন তৈরি করার উদাহরণ:
ধরা যাক, আমরা একটি কাস্টম এক্সপশন তৈরি করব যার নাম হবে InvalidAgeException। এটি তখন ব্যবহার করা হবে যখন ইউজার অবৈধ বয়স ইনপুট করবে (যেমন, ০ বা ঋণাত্মক বয়স)।
program CustomExceptionExample;
uses
SysUtils; { System Unit }
type
InvalidAgeException = class(Exception)
public
constructor Create; overload;
constructor Create(msg: string); overload;
end;
constructor InvalidAgeException.Create;
begin
inherited Create('Invalid Age Exception');
end;
constructor InvalidAgeException.Create(msg: string);
begin
inherited Create(msg);
end;
var
age: Integer;
begin
writeln('Enter your age:');
readln(age);
try
if age <= 0 then
raise InvalidAgeException.Create('Age must be a positive integer!');
writeln('Your age is: ', age);
except
on E: InvalidAgeException do
writeln('Error: ', E.Message);
end;
end.এখানে:
InvalidAgeExceptionএকটি কাস্টম এক্সপশন ক্লাস যাExceptionথেকে উত্তরাধিকার নেয়।Createকনস্ট্রাক্টরটি এক্সপশন মেসেজ নির্ধারণ করতে ব্যবহৃত হয়।raiseকিওয়ার্ডটি এক্সপশন উঠানোর জন্য ব্যবহৃত হয়।
কাস্টম এক্সপশন হ্যান্ডলিং
কাস্টম এক্সপশন হ্যান্ডল করতে, আপনি try..except ব্লক ব্যবহার করেন, যেখানে আপনি কাস্টম এক্সপশনটির জন্য একটি বিশেষ on হ্যান্ডলার প্রদান করেন।
উদাহরণ: কাস্টম এক্সপশন হ্যান্ডলিং
program CustomExceptionHandling;
uses
SysUtils; { System Unit }
type
NegativeNumberException = class(Exception)
public
constructor Create; overload;
constructor Create(msg: string); overload;
end;
constructor NegativeNumberException.Create;
begin
inherited Create('Negative number exception occurred!');
end;
constructor NegativeNumberException.Create(msg: string);
begin
inherited Create(msg);
end;
var
num: Integer;
begin
writeln('Enter a number:');
readln(num);
try
if num < 0 then
raise NegativeNumberException.Create('Number cannot be negative!');
writeln('You entered: ', num);
except
on E: NegativeNumberException do
writeln('Error: ', E.Message);
else
writeln('An unknown error occurred.');
end;
end.এই প্রোগ্রামে:
- যখন
numঋণাত্মক হয়, তখন কাস্টম এক্সপশনNegativeNumberExceptionউঠানো হয়। try..exceptব্লকে সেই এক্সপশনটি হ্যান্ডল করা হয় এবং মেসেজটি ইউজারের কাছে প্রদর্শিত হয়।
কাস্টম এক্সপশন এর উপকারিতা
- বিশেষ পরিস্থিতি চিহ্নিত করা: আপনি কাস্টম এক্সপশন তৈরি করে বিশেষ ধরনের ত্রুটি চিহ্নিত করতে পারেন যা সাধারণ
Exceptionক্লাসের দ্বারা কভার করা হয় না। - বিষদ বার্তা প্রদান: কাস্টম এক্সপশন ব্যবহার করে আপনি আরো নির্দিষ্ট এবং পরিষ্কার বার্তা প্রদান করতে পারেন, যা ডেভেলপারদের ত্রুটি সমাধান করতে সাহায্য করে।
- বিপজ্জনক ভুল এড়ানো: কাস্টম এক্সপশন তৈরি করে আপনি এমন ভুল থেকে রক্ষা পেতে পারেন যা স্বাভাবিকভাবে কোডের অন্যান্য অংশে সমস্যা সৃষ্টি করতে পারে।
সারাংশ
প্যাসক্যাল ভাষায় কাস্টম এক্সপশন তৈরি এবং হ্যান্ডল করা খুবই শক্তিশালী একটি ফিচার যা বিশেষ ত্রুটির ক্ষেত্রে প্রোগ্রামটির সঠিক কার্যক্রম নিশ্চিত করতে সাহায্য করে। Exception ক্লাস থেকে উত্তরাধিকার নিয়ে কাস্টম এক্সপশন তৈরি করা যায়, এবং try..except ব্লক দিয়ে ত্রুটির সময় কাস্টম এক্সপশনটি হ্যান্ডল করা যায়। এটি প্রোগ্রামিংয়ে আরও উন্নত এবং নিরাপদ প্রোগ্রাম তৈরি করতে সহায়ক।
Read more