কম্পিউটার টিউটোরিয়াল

জাভাতে ইউজার-ডিফাইনড এক্সেপশন ক্লাস কখন তৈরি করা উচিত?


জাভাতে আমাদের নিজস্ব এক্সেপশন তৈরি করা উচিত। নিজস্ব এক্সেপশন ক্লাস লিখতে समय নিচের পয়েন্টগুলো মনে রাখুন:

  • সকল এক্সেপশন অবশ্যই Throwable-এর চাইল্ড হতে হবে।
  • যদি আমরা একটি চেকড এক্সেপশন লিখতে চাই যা Handle or Declare Rule দ্বারা অটোমেটিক্যালি এনফোর্স হবে, তবে Exception ক্লাস এক্সটেন্ড করতে হবে।
  • যদি আমরা একটি রানটাইম এক্সেপশন লিখতে চাই, তবে RuntimeException ক্লাস এক্সটেন্ড করতে হবে।

আমরা নিচের মতো নিজস্ব Exception ক্লাস ডিফাইন করতে পারি:

class MyException extends Exception { }

আমাদের শুধু Exception ক্লাস এক্সটেন্ড করতে হবে নিজস্ব Exception ক্লাস তৈরি করতে। এগুলো চেকড এক্সেপশন হিসেবে বিবেচিত হয়। নিচের InsufficientFundsException ক্লাস একটি ইউজার-ডিফাইনড এক্সেপশন যা Exception ক্লাস এক্সটেন্ড করে, এটিকে একটি চেকড এক্সেপশন বানাতে।

উদাহরণ

// File Name InsufficientFundsException.java
import java.io.*;
class InsufficientFundsException extends Exception {
    private double amount;
    public InsufficientFundsException(double amount) {
        this.amount = amount;
    }
    public double getAmount() {
        return amount;
    }
}
// File Name CheckingAccount.java
class CheckingAccount {
    private double balance;
    private int number;
    public CheckingAccount(int number) {
        this.number = number;
    }
    public void deposit(double amount) {
        balance += amount;
    }
    public void withdraw(double amount) throws InsufficientFundsException {
        if(amount <= balance) {
            balance -= amount;
        } else {
            double needs = amount - balance;
            throw new InsufficientFundsException(needs);
        }
    }
    public double getBalance() {
        return balance;
    }
    public int getNumber() {
        return number;
    }
}
// File Name BankDemo.java
public class BankDemo {
    public static void main(String [] args) {
        CheckingAccount c = new CheckingAccount(101);
        System.out.println("Depositing $500...");
        c.deposit(500.00);
        try {
            System.out.println("\nWithdrawing $100...");
            c.withdraw(100.00);
            System.out.println("\nWithdrawing $600...");
            c.withdraw(600.00);
        } catch(InsufficientFundsException e) {
            System.out.println("Sorry, but you are short $" + e.getAmount());
            e.printStackTrace();
        }
    }
}

আউটপুট

Depositing $500...
Withdrawing $100...
Withdrawing $600...
Sorry, but you are short $200.0
InsufficientFundsException
    at CheckingAccount.withdraw(BankDemo.java:32)
    at BankDemo.main(BankDemo.java:53)
  1. জাভাতে ইন্টারফেস

  2. জাভাতে অ্যাবস্ট্রাক্ট ক্লাস

  3. জাভাতে ফাইনাল ক্লাস

  4. পাইথনে ইউজার-ডিফাইনড এক্সেপশন উদাহরণসহ