C++:
ত্রুটিগুলি পরিচালনা করা

কিভাবে:

এখানে একটি বেসিক try-catch ব্লক দেওয়া হল যা একটি ব্যতিক্রম সামাল দেবে:

#include <iostream>
#include <stdexcept>

int main() {
    try {
        throw std::runtime_error("Oops! কিছু ভুল হয়ে গেছে।");
    } catch (const std::exception& e) {
        std::cerr << "ত্রুটি: " << e.what() << std::endl;
    }
    return 0;
}

নমুনা আউটপুট:

ত্রুটি: Oops! কিছু ভুল হয়ে গেছে।

গভীরে ডুব:

C++ এর প্রাথমিক দিনগুলো থেকেই ত্রুটি সমাধান ছিল। সবচেয়ে বেসিক ফর্ম ছিল ফেরত মান যাচাই করা। যদি আপনি অনেকদিন ধরে এই ক্ষেত্রে আছেন, আপনি প্রাক-মান দিনগুলো মনে করবেন: C সহ ক্লাসেস এবং ম্যানুয়াল ত্রুটি যাচাই।

তারপর C++ এ এসেছে ব্যতিক্রম যা আমাদেরকে অপ্রত্যাশিত সমস্যাগুলো সমাধানের একটি কাঠামোগত উপায় দিয়েছে। একটি ব্যতিক্রম throw দিয়ে নিক্ষেপ করা হয় এবং try/catch দ্বারা ধরা হয়।

দুই ধরনের ত্রুটি প্রায়শই ঘটে: যুক্তিগত ত্রুটি, যেমন ভুল গণনা, এবং রানটাইম ত্রুটি, যেমন অবৈধ মেমোরি ঠিকানায় অ্যাক্সেস করা। রানটাইম ত্রুটিগুলির জন্য ব্যতিক্রম আদর্শ। যুক্তিগত ত্রুটির জন্য, প্রায়শই দাবির বা ত্রুটি কোড ব্যবহার করা ভালো।

ব্যতিক্রম বনাম ত্রুটি কোডের ওপর চলমান বিতর্ক আছে। ব্যতিক্রম ধীর হতে পারে এবং জটিল নিয়ন্ত্রণ প্রবাহে পরিণত হতে পারে। ত্রুটি কোড, যদিও দ্রুত, কোডকে জটিল এবং রক্ষণাবেক্ষণ করা কঠিন করতে পারে। এটি একটি সমঝোতা, তাই আপনার ব্যবহারের ক্ষেত্র জানা জরুরি।

C++17 এ std::optional এবং std::variant চালু করেছে, যা ব্যতিক্রমের বিকল্প। তারা তেমন ফাংশনগুলির জন্য উপযোগী যা হয়ত বৈধ ফলাফল দিতে পারে অথবা নাও পারে।

ব্যতিক্রম নিরাপত্তা আরেকটি মাথাব্যথা হতে পারে। এটি আপনার কোডের পরিবর্তে ব্যতিক্রম সত্ত্বেও যে গ্যারান্টিগুলি প্রদান করে তা সম্পর্কে। তিনটি স্তর আছে: বেসিক, স্ট্রং, এবং নোথ্রো। আরো গ্যারান্টি, আপনার কোড তত জটিল হতে পারে।

চূড়ান্ত চিন্তা—ত্রুটি সমাধান শিল্প এবং বিজ্ঞান উভয়ের মতো। এটি আপনার অ্যাপ্লিকেশনকে বন্যতায় টিকিয়ে রাখার উপায় আকার দেয়। ব্যতিক্রমের ব্যবহার অতিরিক্ত করবেন না। পাঠযোগ্য, রক্ষণাবেক্ষণযোগ্য কোডের জন্য লক্ষ্য রাখুন।

আরো দেখুন