try, catch, finally ব্লক

এক্সেপশন হ্যান্ডলিং - জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

306

Java তে try, catch, এবং finally ব্লক এক্সেপশন হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। এই ব্লকগুলো প্রোগ্রাম চলাকালীন বিভিন্ন ধরনের এক্সেপশন সনাক্ত, হ্যান্ডল, এবং অবশেষে ক্লিনআপ (cleanup) কার্য সম্পাদন করতে সাহায্য করে।


try, catch, এবং finally ব্লকের কার্যপদ্ধতি

১. try ব্লক

try ব্লকের ভেতর এমন কোড রাখা হয় যেখানে এক্সেপশন (exception) ঘটতে পারে। যদি try ব্লকের কোডে কোনো এক্সেপশন ঘটে, তাহলে সেটি catch ব্লকে পাঠানো হয়।

গঠন:

try {
    // এক্সেপশন ঘটার সম্ভাবনাময় কোড
}

২. catch ব্লক

catch ব্লক try ব্লকে ঘটে যাওয়া এক্সেপশন হ্যান্ডল করতে ব্যবহৃত হয়। এক্সেপশনের ধরন অনুযায়ী সঠিক catch ব্লক কার্যকর হয়। একাধিক catch ব্লক ব্যবহার করে বিভিন্ন ধরনের এক্সেপশন আলাদা করে হ্যান্ডল করা যায়।

গঠন:

catch (ExceptionType e) {
    // এক্সেপশন হ্যান্ডলিং কোড
}

৩. finally ব্লক

finally ব্লক সবসময় কার্যকর হয়, চাই এক্সেপশন ঘটুক বা না ঘটুক। এটি সাধারণত রিসোর্স ক্লিনআপ, যেমন ফাইল বন্ধ করা বা ডেটাবেস সংযোগ বন্ধ করার জন্য ব্যবহৃত হয়।

গঠন:

finally {
    // সবসময় কার্যকর হওয়া কোড
}

উদাহরণ: try, catch, এবং finally ব্লক

public class ExceptionExample {
    public static void main(String[] args) {
        try {
            int result = 10 / 0; // এখানে ArithmeticException তৈরি হবে
            System.out.println("Result: " + result);
        } catch (ArithmeticException e) {
            System.out.println("Exception caught: Division by zero is not allowed.");
        } finally {
            System.out.println("This will always execute, regardless of exception.");
        }
    }
}

আউটপুট:

Exception caught: Division by zero is not allowed.
This will always execute, regardless of exception.

ব্যাখ্যা:

  • এখানে 10 / 0 এর ফলে ArithmeticException তৈরি হয়, যা catch ব্লকে ধরা পড়ে এবং একটি বার্তা প্রদর্শন করে।
  • finally ব্লক সবসময় কার্যকর হয়, তাই এক্সেপশন থাকলেও সেটি কার্যকর হয় এবং নির্দিষ্ট বার্তা প্রদর্শন করে।

একাধিক catch ব্লক ব্যবহার

একই try ব্লকে একাধিক ধরনের এক্সেপশন হ্যান্ডল করতে একাধিক catch ব্লক ব্যবহার করা যেতে পারে। প্রতিটি catch ব্লক ভিন্ন ধরনের এক্সেপশন হ্যান্ডল করতে পারে।

public class MultipleCatchExample {
    public static void main(String[] args) {
        try {
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[5]); // এখানে ArrayIndexOutOfBoundsException ঘটবে
            int result = 10 / 0; // এখানে ArithmeticException ঘটবে
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Exception caught: Array index is out of bounds.");
        } catch (ArithmeticException e) {
            System.out.println("Exception caught: Division by zero is not allowed.");
        } finally {
            System.out.println("This will always execute, regardless of exception.");
        }
    }
}

আউটপুট:

Exception caught: Array index is out of bounds.
This will always execute, regardless of exception.

ব্যাখ্যা: প্রথমেই ArrayIndexOutOfBoundsException ঘটে এবং সেই catch ব্লকটি কার্যকর হয়। এরপর finally ব্লক সর্বদা কার্যকর হয়, চাই এক্সেপশন ঘটুক বা না ঘটুক।


শুধুমাত্র finally ব্লক ব্যবহার

try এবং finally ব্লক একসাথে ব্যবহার করা যায়, catch ব্লক ছাড়াও। এটি তখনই ব্যবহার করা হয় যখন আমরা নিশ্চিত যে এক্সেপশন হ্যান্ডলিং প্রয়োজন নেই, তবে প্রোগ্রামের শেষে কিছু ক্লিনআপ কোড চালানো প্রয়োজন।

public class FinallyExample {
    public static void main(String[] args) {
        try {
            System.out.println("Inside try block.");
        } finally {
            System.out.println("Finally block executed.");
        }
    }
}

আউটপুট:

Inside try block.
Finally block executed.

try-catch-finally এর সুবিধা

  1. প্রোগ্রামকে ক্র্যাশ থেকে রক্ষা: এক্সেপশন থাকলেও প্রোগ্রাম চলমান থাকে।
  2. সমস্যা সনাক্ত ও সমাধান: catch ব্লক সমস্যার ধরন নির্ধারণ করে এবং উপযুক্ত বার্তা প্রদর্শন করে।
  3. রিসোর্স ক্লিনআপ: finally ব্লক ব্যবহার করে ফাইল বা ডেটাবেস সংযোগের মতো রিসোর্স নিরাপদে বন্ধ করা যায়।

সারসংক্ষেপ

Java তে try, catch, এবং finally ব্লক ব্যবহার করে এক্সেপশন হ্যান্ডল করা হয়। try ব্লকে এক্সেপশন ঘটতে পারে এমন কোড থাকে, catch ব্লক এক্সেপশন হ্যান্ডল করে, এবং finally ব্লক সবসময় কার্যকর হয়, যাতে প্রোগ্রাম শেষ করার আগে প্রয়োজনীয় ক্লিনআপ নিশ্চিত করা যায়। এটি প্রোগ্রামকে আরও নির্ভরযোগ্য ও রক্ষণাবেক্ষণযোগ্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...