Custom Exception তৈরি কিভাবে করা যায়?

Exception Handling সম্পর্কিত প্রশ্নাবলী - জাভা ইন্টারভিউ প্রশ্ন (Java Interview Questions) - Java Technologies

405

জাভা তে Custom Exception তৈরি করার মাধ্যমে আপনি নিজের প্রয়োজন অনুযায়ী কাস্টম এক্সেপশন তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনের জন্য নির্দিষ্ট ধরনের ত্রুটি (error) বা ব্যতিক্রম (exception) চিহ্নিত করতে সাহায্য করবে। জাভার built-in exceptions যেমন IOException, SQLException, ইত্যাদির পরিবর্তে কাস্টম এক্সেপশন ব্যবহার করে আপনার অ্যাপ্লিকেশনে আরও নির্দিষ্ট এবং অর্থপূর্ণ ত্রুটি পরিচালনা করতে পারবেন।

Custom Exception তৈরি করার ধাপ:

১. Exception ক্লাস অথবা RuntimeException ক্লাসের একটি সাবক্লাস তৈরি করুন:

  • জাভার Exception ক্লাস বা RuntimeException ক্লাস থেকে ইনহেরিট (inherit) করে কাস্টম এক্সেপশন তৈরি করা হয়।
  • যদি আপনি checked exception তৈরি করতে চান (যে এক্সেপশনটি কম্পাইল টাইমে ধরতে হয়), তাহলে Exception ক্লাস থেকে ইনহেরিট করুন।
  • যদি আপনি unchecked exception তৈরি করতে চান (যে এক্সেপশনটি রানটাইমে ধরতে হয়), তাহলে RuntimeException ক্লাস থেকে ইনহেরিট করুন।

২. কনস্ট্রাক্টর এবং মেসেজ ফিল্ড যুক্ত করুন:

  • কাস্টম এক্সেপশনের জন্য একটি কনস্ট্রাক্টর তৈরি করুন, যাতে আপনি এক্সেপশনের মেসেজ এবং অন্যান্য তথ্য পাস করতে পারেন।

Custom Exception উদাহরণ:

Checked Custom Exception Example:

// Custom checked exception class
public class InvalidAgeException extends Exception {
    
    // Constructor that accepts a custom message
    public InvalidAgeException(String message) {
        super(message);  // Call the parent class (Exception) constructor with the message
    }
}

Unchecked Custom Exception Example:

// Custom unchecked exception class
public class NegativeAmountException extends RuntimeException {
    
    // Constructor that accepts a custom message
    public NegativeAmountException(String message) {
        super(message);  // Call the parent class (RuntimeException) constructor with the message
    }
}

Custom Exception ব্যবহার করার উদাহরণ:

Checked Exception Example:

public class TestCustomException {

    // Method to check age
    public static void checkAge(int age) throws InvalidAgeException {
        if (age < 18) {
            throw new InvalidAgeException("Age cannot be less than 18");
        } else {
            System.out.println("Age is valid.");
        }
    }

    public static void main(String[] args) {
        try {
            checkAge(16);  // This will throw InvalidAgeException
        } catch (InvalidAgeException e) {
            System.out.println("Exception caught: " + e.getMessage());
        }
    }
}

Unchecked Exception Example:

public class TestUncheckedException {

    // Method to withdraw amount
    public static void withdrawAmount(double amount) {
        if (amount < 0) {
            throw new NegativeAmountException("Amount cannot be negative");
        } else {
            System.out.println("Amount withdrawn: " + amount);
        }
    }

    public static void main(String[] args) {
        try {
            withdrawAmount(-500);  // This will throw NegativeAmountException
        } catch (NegativeAmountException e) {
            System.out.println("Exception caught: " + e.getMessage());
        }
    }
}

Custom Exception এর বৈশিষ্ট্য:

  1. কাস্টম মেসেজ প্রদান করা:
    • কাস্টম এক্সেপশন তৈরি করার সময় আপনি এর কনস্ট্রাক্টরের মাধ্যমে একটি কাস্টম মেসেজ পাস করতে পারবেন, যা ব্যতিক্রমের কারণ বা অবস্থান বুঝতে সাহায্য করবে।
  2. Stack Trace:
    • Exception অথবা RuntimeException থেকে ইনহেরিট করা হলে, কাস্টম এক্সেপশনও স্ট্যাক ট্রেস সরবরাহ করবে, যা আপনাকে ত্রুটির উৎস খুঁজে বের করতে সাহায্য করবে।
  3. Checked এবং Unchecked Exception:
    • আপনি যদি Exception ক্লাস থেকে ইনহেরিট করেন, তাহলে এটি একটি checked exception হবে, এবং এটি try-catch ব্লকে অথবা মেথডের সিগনেচারে throws কীওয়ার্ড দিয়ে ঘোষণা করতে হবে।
    • আপনি যদি RuntimeException ক্লাস থেকে ইনহেরিট করেন, তাহলে এটি একটি unchecked exception হবে, এবং আপনাকে এটি হ্যান্ডল করার জন্য try-catch ব্লক ব্যবহার করতে হবে না।

Custom Exception এর জন্য কিছু সেরা অভ্যাস:

  • কাস্টম এক্সেপশন তৈরি করার সময়, যথাযথ এক্সেপশন হ্যান্ডলিং পদ্ধতি ব্যবহার করুন।
  • যথাসম্ভব সাধারণ এবং পরিষ্কার নাম ব্যবহার করুন, যাতে এক্সেপশনটি কী ধরণের সমস্যা বা ত্রুটি নির্দেশ করছে তা সহজে বোঝা যায়।
  • যখন আপনি কাস্টম এক্সেপশন ব্যবহার করেন, তখন এটি অবশ্যই প্রাসঙ্গিক কনটেক্সট বা কার্যকারিতা সম্পর্কিত হতে হবে, যেমন একটি InvalidAgeException শুধুমাত্র বয়স সংক্রান্ত ত্রুটির জন্য ব্যবহার করা উচিত।
  • কাস্টম এক্সেপশনের কনস্ট্রাক্টরগুলিতে super() ব্যবহার করে Exception বা RuntimeException এর মেসেজ প্রপার্টি সঠিকভাবে সেট করুন।

জাভাতে কাস্টম এক্সেপশন তৈরি করা সহজ, এবং এটি আপনাকে আপনার অ্যাপ্লিকেশনের জন্য আরও নির্দিষ্ট ত্রুটি বা ব্যতিক্রম চিহ্নিত করতে সহায়তা করে। উপরের উদাহরণ এবং পদ্ধতিগুলি আপনাকে কাস্টম এক্সেপশন তৈরির এবং সেগুলি ব্যবহারের ক্ষেত্রে একটি পরিষ্কার ধারণা দেবে।

Content added By
Promotion

Are you sure to start over?

Loading...