try, catch, throw ব্লক

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming) এক্সেপশন হ্যান্ডলিং |
263
263

C++ প্রোগ্রামিংয়ে try, catch, এবং throw ব্লক ব্যবহার করে এক্সেপশন হ্যান্ডলিং করা হয়। এগুলোর মাধ্যমে প্রোগ্রামের ভুল (error) বা অপ্রত্যাশিত পরিস্থিতিকে সনাক্ত করে তা সমাধান করা যায়।

try, catch, এবং throw কী?

try ব্লক: এখানে এমন কোড রাখা হয়, যেখানে এক্সেপশন (ত্রুটি) ঘটতে পারে। যখন একটি ত্রুটি ঘটে, তখন এটি throw ব্যবহার করে ত্রুটিটি ছুঁড়ে দেয় এবং try ব্লক থেকে বেরিয়ে যায়।

throw: যখন ত্রুটি ঘটে, তখন throw অপারেটর ব্যবহার করে ত্রুটি (এক্সেপশন) catch ব্লকে পাঠানো হয়। throw এর সাথে এক্সেপশনের ধরণ উল্লেখ করা হয়, যেমন int, char*, string ইত্যাদি।

catch ব্লক: catch ব্লক throw করা এক্সেপশন গ্রহণ করে এবং সেই অনুযায়ী ত্রুটি সমাধানের জন্য ব্যবস্থা গ্রহণ করে। catch ব্লকের প্যারামিটারে এক্সেপশনের ধরণ উল্লেখ করতে হয়, যাতে সঠিক ধরনের এক্সেপশন হ্যান্ডল করা যায়।


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

নিচে একটি উদাহরণ দেওয়া হলো যেখানে দুইটি সংখ্যার ভাগফল নির্ণয় করার সময় ডিভাইড-বাই-জিরো ত্রুটি থেকে রক্ষা করার জন্য try, catch, এবং throw ব্লক ব্যবহার করা হয়েছে।

#include <iostream>
using namespace std;

int main() {
    int numerator, denominator;
    cout << "Enter numerator: ";
    cin >> numerator;
    cout << "Enter denominator: ";
    cin >> denominator;

    try {
        if (denominator == 0) {
            throw "Division by zero is not allowed!"; // throw দিয়ে এক্সেপশন ছুঁড়ে দেওয়া
        }
        cout << "Result: " << numerator / denominator << endl;
    }
    catch (const char* msg) { // catch ব্লক এক্সেপশন গ্রহণ করে
        cout << "Error: " << msg << endl;
    }

    return 0;
}

বর্ণনা:

  • try ব্লকের মধ্যে বিভাজন অপারেশন করা হয়েছে। যদি denominator এর মান 0 হয়, তবে throw দিয়ে একটি বার্তা (স্ট্রিং টাইপ) ছুঁড়ে দেওয়া হয়েছে।
  • catch ব্লকটি সেই বার্তাটি গ্রহণ করে এবং কনসোলে প্রিন্ট করে।

আউটপুট (যদি denominator এ 0 ইনপুট দেওয়া হয়):

Enter numerator: 10
Enter denominator: 0
Error: Division by zero is not allowed!

একাধিক catch ব্লক

একই try ব্লক থেকে বিভিন্ন ধরনের এক্সেপশন ছুঁড়ে দেওয়া যেতে পারে এবং সেগুলোর জন্য আলাদা আলাদা catch ব্লক ব্যবহার করা যেতে পারে।

উদাহরণ: একাধিক catch ব্লক ব্যবহার

#include <iostream>
using namespace std;

int main() {
    try {
        int num1, num2;
        cout << "Enter two numbers: ";
        cin >> num1 >> num2;

        if (num2 == 0) {
            throw 0; // int টাইপ এক্সেপশন
        }

        if (num1 < 0 || num2 < 0) {
            throw "Negative numbers are not allowed"; // string টাইপ এক্সেপশন
        }

        cout << "Result: " << num1 / num2 << endl;
    }
    catch (int e) {
        cout << "Error: Division by zero" << endl;
    }
    catch (const char* msg) {
        cout << "Error: " << msg << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে try ব্লকে দুটি এক্সেপশন হতে পারে:
    • যদি num2 এর মান 0 হয়, তাহলে throw 0; দিয়ে int টাইপ এক্সেপশন ছুঁড়ে দেওয়া হয়।
    • যদি num1 বা num2 এর মান ঋণাত্মক হয়, তাহলে throw "Negative numbers are not allowed"; দিয়ে string টাইপ এক্সেপশন ছুঁড়ে দেওয়া হয়।
  • আলাদা catch ব্লক ব্যবহার করে বিভিন্ন এক্সেপশন হ্যান্ডল করা হয়েছে।

যেকোনো ধরনের এক্সেপশন ধরার জন্য catch(...)

C++ এ catch(...) ব্যবহার করে যেকোনো ধরনের এক্সেপশন ধরতে একটি সাধারণ catch ব্লক তৈরি করা যায়, যা যেকোনো এক্সেপশন ধরতে পারে।

#include <iostream>
using namespace std;

int main() {
    try {
        throw 20;
    }
    catch (...) {
        cout << "An exception occurred!" << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে catch(...) সব ধরনের এক্সেপশন ধরতে সক্ষম। try ব্লক থেকে যেকোনো এক্সেপশন ছুঁড়ে দিলেও catch(...) তা ধরবে।

আউটপুট:

An exception occurred!

সংক্ষিপ্তসার

  • try ব্লক: ত্রুটি ঘটার সম্ভাবনা থাকে এমন কোড থাকে, যেখানে এক্সেপশন হলে তা throw দিয়ে ছুঁড়ে দেওয়া হয়।
  • throw: ত্রুটি ঘটলে throw অপারেটর ব্যবহার করে এক্সেপশন catch ব্লকে পাঠানো হয়।
  • catch ব্লক: throw করা এক্সেপশন গ্রহণ করে এবং তার জন্য প্রয়োজনীয় সমাধান ব্যবস্থা গ্রহণ করে।

C++ এ এক্সেপশন হ্যান্ডলিং ব্যবহার করে প্রোগ্রামকে আরও স্থিতিশীল এবং ব্যবহারকারীর সাথে বন্ধুসুলভ করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion