Multiple Catch Blocks Example: বিভিন্ন ধরনের Exceptions হ্যান্ডল করা

Java Exception Handling Examples - জাভা উদাহরন (Java  Examples) - Java Technologies

355

Java তে Multiple Catch Blocks ব্যবহার করা হয় বিভিন্ন ধরনের Exceptions হ্যান্ডল করার জন্য। একাধিক catch ব্লক ব্যবহার করে, আপনি একে একে একাধিক ধরনের exceptions কভার করতে পারেন, যাতে এক বা একাধিক ধরনের ত্রুটি (errors) হলে সেগুলি যথাযথভাবে হ্যান্ডল করা যায়।

Java 7 থেকে multi-catch ব্লকও চালু হয়েছে, যার মাধ্যমে একাধিক এক্সসেপশন একটি একক catch ব্লকে ক্যাচ করা সম্ভব।

1. Multiple Catch Blocks Example (Traditional Method)

নিচে একটি উদাহরণ দেয়া হলো যেখানে একাধিক catch ব্লক ব্যবহার করে বিভিন্ন ধরনের exceptions হ্যান্ডল করা হয়েছে:

Example: Handling Multiple Exceptions with Multiple Catch Blocks

public class MultipleCatchExample {
    public static void main(String[] args) {
        try {
            // Dividing by zero (ArithmeticException)
            int result = 10 / 0; 
            
            // Array index out of bounds (ArrayIndexOutOfBoundsException)
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[5]); 

            // NullPointerException
            String str = null;
            System.out.println(str.length());
            
        } catch (ArithmeticException e) {
            System.out.println("Error: Division by zero is not allowed!");
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Error: Array index out of bounds!");
        } catch (NullPointerException e) {
            System.out.println("Error: Attempt to access an object that is null!");
        } catch (Exception e) {
            System.out.println("General error: " + e.getMessage());
        }
    }
}

Explanation:

  1. try Block: এখানে বিভিন্ন ধরনের এক্সসেপশন তৈরি করা হয়েছে, যেমন ArithmeticException, ArrayIndexOutOfBoundsException, এবং NullPointerException
  2. Multiple catch Blocks: প্রতিটি এক্সসেপশনের জন্য আলাদা আলাদা catch ব্লক ব্যবহার করা হয়েছে।
  3. Generic Exception Handling: সর্বশেষে একটি catch(Exception e) ব্লক ব্যবহার করা হয়েছে যা অন্যান্য এক্সসেপশনের জন্য কাজ করবে।

Output:

Error: Division by zero is not allowed!

2. Multi-Catch (Java 7 and Above)

Java 7 থেকে একটি নতুন সুবিধা যুক্ত হয়েছে, যা হলো multi-catch ব্লক। এর মাধ্যমে আপনি একাধিক এক্সসেপশন এক সাথে একটি catch ব্লকে হ্যান্ডল করতে পারেন। এটি কোডের পুনরাবৃত্তি কমাতে সহায়তা করে।

Example: Handling Multiple Exceptions with Multi-Catch Block

public class MultiCatchExample {
    public static void main(String[] args) {
        try {
            // Dividing by zero (ArithmeticException)
            int result = 10 / 0;
            
            // Array index out of bounds (ArrayIndexOutOfBoundsException)
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[5]);
            
        } catch (ArithmeticException | ArrayIndexOutOfBoundsException | NullPointerException e) {
            System.out.println("Error: " + e.getClass().getName() + " occurred!");
        }
    }
}

Explanation:

  1. Multi-Catch Block: এখানে catch ব্লকটি একাধিক এক্সসেপশন (যেমন ArithmeticException, ArrayIndexOutOfBoundsException, এবং NullPointerException) একসাথে ক্যাচ করতে পারে। এর ফলে কোড অনেক বেশি সংক্ষিপ্ত এবং পরিষ্কার হয়ে ওঠে।
  2. e.getClass().getName(): এটি ত্রুটির ধরন প্রিন্ট করে, যেমন ArithmeticException বা ArrayIndexOutOfBoundsException

Output:

Error: java.lang.ArithmeticException occurred!

3. Using the finally Block with Multiple Catch Blocks

একাধিক catch ব্লকের সাথে finally ব্লক ব্যবহার করা হলে, এটি একটি নির্দিষ্ট কোড ব্লক চালানোর জন্য ব্যবহৃত হয় যা যে কোনো ক্ষেত্রে এক্সসেপশন হ্যান্ডলিংয়ের পরে চালানো হয় (যেমন ফাইল ক্লোজ করা বা রিসোর্স মুক্ত করা)।

Example: Using finally Block with Multiple Catch Blocks

public class FinallyWithCatchExample {
    public static void main(String[] args) {
        try {
            // Dividing by zero (ArithmeticException)
            int result = 10 / 0;

        } catch (ArithmeticException e) {
            System.out.println("Error: Division by zero is not allowed!");
        } finally {
            System.out.println("Finally block executed: Cleanup actions.");
        }
    }
}

Explanation:

  • finally Block: finally ব্লকটি ব্যবহৃত হয় এমন কোড লেখার জন্য যা যেকোনো ক্ষেত্রে চালানো উচিত, যেমন ক্লোজিং ফাইল বা মেমরি রিলিজ করা, যা এক্সসেপশন হ্যান্ডলিংয়ের পরও কাজ করতে হয়।

Output:

Error: Division by zero is not allowed!
Finally block executed: Cleanup actions.

Key Points About Multiple Catch Blocks:

  1. Multiple Catch Blocks: আপনি একাধিক catch ব্লক ব্যবহার করে বিভিন্ন ধরনের এক্সসেপশন হ্যান্ডল করতে পারেন। এতে এক্সসেপশনের ধরন অনুযায়ী নির্দিষ্ট ব্লক এক্সিকিউট হবে।
  2. Multi-Catch (Java 7+): Java 7 থেকে আপনি একক catch ব্লকে একাধিক এক্সসেপশন হ্যান্ডল করতে পারেন, যা কোডের পুনরাবৃত্তি কমায় এবং আরও পরিষ্কার ও সোজা কোড তৈরি করে।
  3. finally Block: finally ব্লকটি এমন কোড রাখার জন্য ব্যবহৃত হয় যেটি এক্সসেপশন হ্যান্ডলিং শেষ হওয়ার পরে অবশ্যই এক্সিকিউট হয়, যেমন ফাইল বা নেটওয়ার্ক কানেকশন বন্ধ করা।
  • Multiple Catch Blocks এবং multi-catch ব্লক ব্যবহার করে Java তে একাধিক এক্সসেপশন হ্যান্ডল করা খুবই সহজ।
  • catch ব্লকগুলি ব্যবহার করে আপনার কোডের রোবাস্টনেস এবং ত্রুটি হ্যান্ডলিং আরও কার্যকরী করা যায়।
  • Java 7 এবং তার পরবর্তী সংস্করণে multi-catch ফিচারটি কোড সহজ এবং পরিষ্কার করে তোলে, কারণ এতে একাধিক এক্সসেপশন একই catch ব্লকে হ্যান্ডল করা যায়।
Content added By
Promotion

Are you sure to start over?

Loading...