Exception এবং Error Handling Techniques

Computer Programming - অ্যাসেম্বলি প্রোগ্রামিং (Assembly Programming) Interrupts এবং Exception Handling (Interrupts and Exception Handling) |
264
264

Assembly Language এবং অন্যান্য উচ্চ-স্তরের প্রোগ্রামিং ভাষায় Exception এবং Error Handling গুরুত্বপূর্ণ ভূমিকা পালন করে। এর মাধ্যমে প্রোগ্রামাররা প্রোগ্রামের ত্রুটি সনাক্ত ও পরিচালনা করতে পারেন, যা প্রোগ্রামকে নির্ভরযোগ্য ও স্থিতিশীল করে তোলে। Assembly Language-এ ত্রুটি পরিচালনা তুলনামূলকভাবে জটিল হলেও উচ্চ স্তরের ভাষায় বিভিন্ন টেকনিক ব্যবহৃত হয়। এখানে Assembly এবং উচ্চ-স্তরের ভাষায় Exception এবং Error Handling নিয়ে আলোচনা করা হলো।


Assembly Language এ Exception Handling:

  • সংজ্ঞা: Assembly Language-এ সরাসরি Exception Handling এর জন্য কোনো বিল্ট-ইন মেকানিজম নেই। তবে, কম্পিউটারের হার্ডওয়্যার এবং অপারেটিং সিস্টেম সাধারণত Interrupts এবং Exception Handling এর কাজ পরিচালনা করে।
  • Interrupts এবং Exceptions:
    • Interrupts: CPU-এর কার্যপ্রবাহে বাহ্যিক বা অভ্যন্তরীণ ইভেন্টের কারণে হস্তক্ষেপ হয়। যেমন হার্ডওয়্যার সিগন্যাল।
    • Exceptions: প্রোগ্রামের অভ্যন্তরীণ ত্রুটির কারণে CPU-এর কার্যপ্রবাহে হস্তক্ষেপ হয়। যেমন ডিভাইড-বাই-জিরো, অপকোড ভুল হওয়া।
  • Handling Techniques:
    • Interrupt Vector Table (IVT): IVT ব্যবহার করে CPU নির্দিষ্ট ঠিকানায় গিয়ে সংশ্লিষ্ট Exception Handling রুটিন কার্যকর করে।
    • Custom Exception Handler: প্রোগ্রামাররা নিজস্ব Exception Handler লিখতে পারেন, যা নির্দিষ্ট ত্রুটির জন্য কার্যকর হয়।

উদাহরণ (ডিভাইড-বাই-জিরো Handling):

mov ax, 10
xor dx, dx         ; DX-এ 0, ডিভাইড বায় জিরো তৈরি করবে
div dx             ; Exception ঘটবে এবং CPU Exception Handler কল করবে

উচ্চ-স্তরের ভাষায় Exception এবং Error Handling Techniques:

  • Try-Catch Block: উচ্চ-স্তরের প্রোগ্রামিং ভাষায় (যেমন C++, Java, Python), ত্রুটি পরিচালনার জন্য try-catch ব্লক ব্যবহৃত হয়।
  • Throw Statement: প্রোগ্রামার ইচ্ছাকৃতভাবে throw স্টেটমেন্ট ব্যবহার করে Exception তৈরি করতে পারেন।
  • Finally Block: finally ব্লক ব্যবহৃত হয় যা Exception ঘটুক বা না ঘটুক সবক্ষেত্রেই কার্যকর হয়।

উদাহরণ (C++ Exception Handling):

#include <iostream>
using namespace std;

int main() {
    try {
        int a = 10, b = 0;
        if (b == 0)
            throw "Division by zero error!";
        int c = a / b;
    } catch (const char* msg) {
        cerr << "Error: " << msg << endl;
    }
    return 0;
}

Error Handling Techniques:

  • Return Codes: Assembly এবং কিছু উচ্চ-স্তরের ভাষায় ফাংশন একটি রিটার্ন কোড দিয়ে সফলতা বা ত্রুটি নির্দেশ করতে পারে।
  • Flags: বিশেষ ফ্ল্যাগ ব্যবহার করে ত্রুটি চেক করা যায়। যেমন, CPU-এর Carry Flag (CF) এবং Overflow Flag (OF) ত্রুটি চেকের জন্য ব্যবহৃত হয়।
  • Error Logs: ত্রুটি লগ ব্যবহার করে প্রোগ্রামের ত্রুটি সনাক্ত করা এবং রক্ষণাবেক্ষণ করা সহজ হয়।

Assembly Language এ Return Code ব্যবহারের উদাহরণ:

mov ax, 1           ; সফলতার জন্য 1 রিটার্ন
int 21h             ; DOS interrupt, রিটার্ন কোড হিসেবে কাজ করে

সারসংক্ষেপ

Exception এবং Error Handling Techniques Assembly এবং উচ্চ-স্তরের প্রোগ্রামিং ভাষায় নির্ভরযোগ্য এবং স্থিতিশীল প্রোগ্রাম তৈরি করতে সহায়তা করে। Assembly Language-এ ত্রুটি পরিচালনা করতে Interrupts এবং Custom Exception Handler ব্যবহার করা হয়। অন্যদিকে, উচ্চ-স্তরের ভাষায় try-catch ব্লক এবং throw স্টেটমেন্টের মাধ্যমে ত্রুটি পরিচালনা সহজ হয়। সঠিক Error Handling Techniques ব্যবহার করে প্রোগ্রামের ত্রুটি সনাক্ত ও প্রতিরোধ করা সম্ভব, যা প্রোগ্রামকে আরও শক্তিশালী এবং ব্যবহার উপযোগী করে।

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

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

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

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