Try-Catch-Finally Structure

Computer Programming - প্যারট (Parrot) Parrot Exception Handling (এক্সসেপশন হ্যান্ডলিং) |
119
119

Try-Catch-Finally Structure প্রোগ্রামিং ভাষায় exception handling এর একটি গুরুত্বপূর্ণ অংশ। এটি ব্যবহারকারীকে ত্রুটি বা ব্যতিক্রম (exception) সনাক্ত করতে এবং সেগুলি সঠিকভাবে পরিচালনা করতে সহায়তা করে, যাতে প্রোগ্রামটি অব্যাহত থাকে এবং ফলস্বরূপ ক্র্যাশ না করে। এই স্ট্রাকচারটি সাধারণত তিনটি অংশে বিভক্ত:

  1. Try Block: এখানে কোড থাকে যা exception ঘটাতে পারে। যদি এখানে কোনো exception ঘটে, তবে catch block এটিকে ধরবে এবং প্রোগ্রামটি বন্ধ হবে না।
  2. Catch Block: এটি ত্রুটি সনাক্ত করে এবং সে অনুযায়ী প্রক্রিয়া নেয়।
  3. Finally Block: এটি এমন একটি অংশ, যা সবসময় execute হবে, चाहे exception ঘটুক বা না ঘটে। এটি সাধারণত পরিষ্কারকরণ কাজের জন্য ব্যবহৃত হয় (যেমন ফাইল বন্ধ করা বা রিসোর্স রিলিজ করা)।

Try-Catch-Finally Structure এর বর্ণনা

  1. Try Block:
    • কোডের সেই অংশ যেখানে আপনি এমন কোড লেখেন যা exception ঘটাতে পারে।
    • যদি কোন exception ঘটে, তবে এটি catch block-এ চলে যাবে।
  2. Catch Block:
    • এটি exception ধরার জন্য ব্যবহৃত হয়। এখানে আপনি exception এর ধরন অনুযায়ী বিশেষ ব্যবস্থা গ্রহণ করতে পারেন।
    • একাধিক catch block ব্যবহার করে ভিন্ন ভিন্ন exception ধরাও সম্ভব।
  3. Finally Block:
    • এটি এমন কোড রাখার জন্য ব্যবহৃত হয় যা সবসময় execute হবে, exception ঘটুক বা না ঘটুক। সাধারণত রিসোর্স ক্লোজ বা ক্লিনআপ কাজের জন্য ব্যবহৃত হয়।

Try-Catch-Finally Structure Example

এখানে Python এর একটি সাধারণ উদাহরণ দেয়া হলো:

try:
    # কোড যা exception ঘটাতে পারে
    num = int(input("একটি পূর্ণসংখ্যা দিন: "))
    result = 10 / num
except ZeroDivisionError:
    # শূন্য দিয়ে ভাগ করার ক্ষেত্রে exception হ্যান্ডলিং
    print("ত্রুটি: শূন্য দিয়ে ভাগ করা সম্ভব নয়!")
except ValueError:
    # যদি ইনপুটটি পূর্ণসংখ্যা না হয়
    print("ত্রুটি: আপনি যে মানটি দিয়েছেন তা একটি বৈধ পূর্ণসংখ্যা নয়!")
else:
    # যদি কোন exception না ঘটে
    print("ফলাফল:", result)
finally:
    # সবসময় execute হবে
    print("এটি সবসময় 실행 হবে।")

ব্যাখ্যা:

  1. Try Block:
    • num = int(input("একটি পূর্ণসংখ্যা দিন: ")) এর মাধ্যমে ব্যবহারকারী থেকে একটি পূর্ণসংখ্যা ইনপুট নেয়া হয়।
    • result = 10 / num এখানে ১০ কে num দিয়ে ভাগ করা হয়।
    • যদি ব্যবহারকারী শূন্য দেন, তাহলে ZeroDivisionError exception ঘটবে।
    • যদি কোনো অযাচিত মান ইনপুট করা হয়, যেমন অক্ষর বা স্ট্রিং, তাহলে ValueError exception হবে।
  2. Catch Block:
    • ZeroDivisionError এর জন্য কোডটি except ZeroDivisionError এ চলে যাবে এবং "ত্রুটি: শূন্য দিয়ে ভাগ করা সম্ভব নয়!" মেসেজটি দেখাবে।
    • ValueError এর জন্য "ত্রুটি: আপনি যে মানটি দিয়েছেন তা একটি বৈধ পূর্ণসংখ্যা নয়!" মেসেজটি দেখাবে।
  3. Finally Block:
    • এটি সবসময় execute হবে, exception ঘটুক বা না ঘটুক। সাধারণত এই অংশে পরিষ্কারকরণ কাজ যেমন ফাইল বন্ধ করা বা ডাটাবেস সংযোগ বন্ধ করা রাখা হয়।

Java Example

Java এ Try-Catch-Finally এর উদাহরণ:

public class Main {
    public static void main(String[] args) {
        try {
            // কোড যা exception ঘটাতে পারে
            int num = Integer.parseInt("abc"); // এটি NumberFormatException তৈরি করবে
        } catch (NumberFormatException e) {
            // NumberFormatException হ্যান্ডলিং
            System.out.println("ত্রুটি: আপনি যে মানটি দিয়েছেন তা একটি বৈধ পূর্ণসংখ্যা নয়!");
        } finally {
            // সবসময় execute হবে
            System.out.println("এটি সবসময় execute হবে।");
        }
    }
}

ব্যাখ্যা:

  1. Try Block:
    • এখানে Integer.parseInt("abc") ব্যবহার করা হয়েছে, যা একটি অযাচিত স্ট্রিং ইনপুট থেকে পূর্ণসংখ্যা কনভার্ট করার চেষ্টা করবে এবং এটি NumberFormatException তৈরি করবে।
  2. Catch Block:
    • NumberFormatException ধরার জন্য catch (NumberFormatException e) ব্লক ব্যবহার করা হয়েছে। এটি exception হওয়ার পরে "ত্রুটি: আপনি যে মানটি দিয়েছেন তা একটি বৈধ পূর্ণসংখ্যা নয়!" মেসেজটি প্রদর্শন করবে।
  3. Finally Block:
    • এটি "এটি সবসময় execute হবে।" মেসেজটি সবসময় প্রদর্শন করবে, যদি exception ঘটে বা না ঘটে।

Key Points:

  1. try Block: এখানে এমন কোড রাখুন যা exception তৈরি করতে পারে।
  2. catch Block: এখানে exception ধরুন এবং তার উপর ভিত্তি করে উপযুক্ত পদক্ষেপ গ্রহণ করুন।
  3. finally Block: এটি কোডের শেষে থাকবে এবং সাধারণত সবসময় কার্যকর হবে, এটি ব্যবহৃত রিসোর্স বা সংযোগ ক্লোজ করার জন্য ব্যবহৃত হয়।

Conclusion:

Try-Catch-Finally স্ট্রাকচার exception handling এর একটি শক্তিশালী উপায় যা প্রোগ্রামকে নিরবচ্ছিন্নভাবে চালাতে সহায়তা করে। এটি প্রোগ্রামিং এর ত্রুটি বা ব্যতিক্রমী পরিস্থিতি কার্যকরীভাবে পরিচালনার মাধ্যমে কোডের গুণগত মান এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সাহায্য করে।

Content added By
Promotion