কাস্টম এক্সেপশন (Custom Exception) হলো প্রোগ্রামারের তৈরি একটি বিশেষ এক্সেপশন ক্লাস, যা নির্দিষ্ট ত্রুটির জন্য প্রোগ্রামার নিজের মতো করে সংজ্ঞায়িত করে। Java তে কাস্টম এক্সেপশন তৈরি করতে Exception ক্লাসকে ইনহেরিট করে নতুন এক্সেপশন ক্লাস তৈরি করা হয়। কাস্টম এক্সেপশন ব্যবহার করে আমরা প্রোগ্রামের প্রয়োজন অনুযায়ী ত্রুটির ধরন চিহ্নিত করতে পারি এবং এর জন্য উপযুক্ত বার্তা প্রদর্শন করতে পারি।
কেন কাস্টম এক্সেপশন ব্যবহার করা হয়?
- নির্দিষ্ট ত্রুটি চিহ্নিত করা: যখন নির্দিষ্ট কোনো কাজের জন্য ত্রুটি চিহ্নিত করতে হয় এবং সেই ত্রুটির জন্য সুনির্দিষ্ট বার্তা প্রদান করতে হয়।
- পড়ার সুবিধা: কাস্টম এক্সেপশন তৈরি করলে কোড আরও সহজে পড়া এবং বুঝতে সুবিধা হয়।
- প্রোগ্রামের স্থায়িত্ব: নির্দিষ্ট ধরনের ত্রুটি ধরে রেখে সঠিকভাবে হ্যান্ডল করে প্রোগ্রামের স্থায়িত্ব বাড়ানো যায়।
কাস্টম এক্সেপশন তৈরি
Java তে কাস্টম এক্সেপশন তৈরি করতে একটি ক্লাস তৈরি করা হয়, যা Exception ক্লাসকে ইনহেরিট করে। এরপরে কনস্ট্রাক্টর তৈরি করে ত্রুটির জন্য উপযুক্ত বার্তা প্রেরণ করা যায়।
উদাহরণ: কাস্টম এক্সেপশন
// Custom Exception ক্লাস তৈরি
class InvalidAgeException extends Exception {
// কনস্ট্রাক্টর যা ত্রুটির বার্তা গ্রহণ করে
public InvalidAgeException(String message) {
super(message); // প্যারেন্ট Exception ক্লাসের কনস্ট্রাক্টরে বার্তা প্রেরণ
}
}
public class TestCustomException {
// মেথড যা কাস্টম এক্সেপশন থ্রো করতে পারে
public static void checkAge(int age) throws InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Age must be 18 or above to register.");
} else {
System.out.println("Registration successful.");
}
}
public static void main(String[] args) {
try {
checkAge(15); // এই ক্ষেত্রে কাস্টম এক্সেপশন থ্রো হবে
} catch (InvalidAgeException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
আউটপুট:
Caught Exception: Age must be 18 or above to register.
ব্যাখ্যা:
InvalidAgeExceptionনামের কাস্টম এক্সেপশন ক্লাস তৈরি করা হয়েছে, যাExceptionক্লাসকে ইনহেরিট করে।InvalidAgeExceptionক্লাসে কনস্ট্রাক্টর তৈরি করে কাস্টম বার্তা গ্রহণ করা হয়েছে।checkAgeমেথডে বয়স যাচাই করা হয় এবং বয়স ১৮ এর কম হলেInvalidAgeExceptionথ্রো করা হয়।mainমেথডেcheckAgeমেথড কল করেtry-catchব্লক ব্যবহার করে এক্সেপশনটি ধরা হয়েছে।
কাস্টম এক্সেপশনের বিভিন্ন ব্যবহার
- ব্যবহারকারী ইনপুট যাচাই: যেমন বয়স, ইমেইল ঠিকানা, পাসওয়ার্ডের দৈর্ঘ্য ইত্যাদি যাচাই করে নির্দিষ্ট কাস্টম এক্সেপশন থ্রো করা।
- ডাটাবেজ অপারেশন: ডাটাবেজে প্রবেশে কোনো সমস্যা হলে
DatabaseConnectionException,RecordNotFoundExceptionএর মতো কাস্টম এক্সেপশন তৈরি করা। - বিজনেস লজিক ভ্যালিডেশন: বিভিন্ন ব্যবসায়িক নিয়ম অনুযায়ী কাস্টম এক্সেপশন তৈরি করে লজিক যাচাই করা।
আরেকটি উদাহরণ: কাস্টম এক্সেপশন (ব্যাংকিং অ্যাপ্লিকেশন)
ধরুন, আমাদের একটি ব্যাংকিং অ্যাপ্লিকেশন আছে যেখানে ব্যালেন্স চেক করা হয় এবং তহবিল পর্যাপ্ত না থাকলে InsufficientFundsException নামে একটি কাস্টম এক্সেপশন তৈরি করা হয়েছে।
// Custom Exception ক্লাস
class InsufficientFundsException extends Exception {
public InsufficientFundsException(String message) {
super(message);
}
}
class BankAccount {
private double balance;
public BankAccount(double balance) {
this.balance = balance;
}
// Withdraw মেথড, যা কাস্টম এক্সেপশন থ্রো করতে পারে
public void withdraw(double amount) throws InsufficientFundsException {
if (amount > balance) {
throw new InsufficientFundsException("Insufficient funds for withdrawal.");
}
balance -= amount;
System.out.println("Withdrawal successful. Remaining balance: " + balance);
}
}
public class Main {
public static void main(String[] args) {
BankAccount account = new BankAccount(500.0);
try {
account.withdraw(600.0); // ব্যালেন্সের চেয়ে বেশি তোলার চেষ্টা করা হয়েছে
} catch (InsufficientFundsException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
আউটপুট:
Caught Exception: Insufficient funds for withdrawal.
ব্যাখ্যা:
InsufficientFundsExceptionনামে কাস্টম এক্সেপশন তৈরি করা হয়েছে।BankAccountক্লাসেwithdrawমেথডে যদি ব্যালেন্সের চেয়ে বেশি তোলার চেষ্টা করা হয়, তবেInsufficientFundsExceptionথ্রো করা হয়।mainমেথডেtry-catchব্লক ব্যবহার করে এক্সেপশনটি ধরা হয়েছে।
কাস্টম এক্সেপশনের সুবিধা
- নির্দিষ্ট ত্রুটি চিহ্নিত করা সহজ: কাস্টম এক্সেপশন দিয়ে ত্রুটির ধরন সহজে বোঝা যায়।
- কোডের পাঠযোগ্যতা বৃদ্ধি: নির্দিষ্ট ত্রুটির জন্য আলাদা এক্সেপশন তৈরি করলে কোড আরও সহজে পড়া যায়।
- প্রোগ্রামের স্থিতিশীলতা বৃদ্ধি: কাস্টম এক্সেপশন ব্যবহারের মাধ্যমে প্রোগ্রামকে ত্রুটির সময় নিয়ন্ত্রিত করা যায় এবং ব্যবহারকারীর জন্য নির্দিষ্ট বার্তা দেখানো যায়।
সারসংক্ষেপ
- কাস্টম এক্সেপশন হলো প্রোগ্রামারের সংজ্ঞায়িত এক্সেপশন, যা নির্দিষ্ট কাজের জন্য বিশেষ ত্রুটি চিহ্নিত করে।
- কাস্টম এক্সেপশন তৈরি করতে
Exceptionক্লাস ইনহেরিট করে নতুন এক্সেপশন ক্লাস তৈরি করা হয়। - কাস্টম এক্সেপশন কোডকে আরও স্পষ্ট, নির্ভরযোগ্য এবং ব্যবহারকারীর জন্য বন্ধুত্বপূর্ণ করে তোলে।
কাস্টম এক্সেপশন ব্যবহার করে প্রোগ্রামের ত্রুটি চিহ্নিত করা এবং সঠিকভাবে সমাধান করা সহজ হয়, যা প্রোগ্রামকে আরও স্থিতিশীল করে।