৬-৭ঃ Error Handling

এই মডিউলে আমারা দেখবো কীভাবে কোনো একটি Invalid ইনপুটের জন্য আমাদের কোড যাতে Crash না করে ঐ পদক্ষেপ গুলা নেয়া যায়। Error 1 : Insert At Any Position এ এমন একটি পজিশন এ Node এড করতে চাওয়া যেখানে Node insert করা যাবে না। যেমনঃ 3 সাইজের একটি Linked list এর ১০ তম পজিশনে Node Insert করা। এই ক্ষেত্রে segmentation fault হয়ে আমাদের crash হয়ে যায়।

Handling : এই ক্ষেত্রে আমরা যদি দেখি Temp shift হতে হতে এক সময় Null এ চলে গেছে অর্থাৎ Invalid index এ চলে যায় , আমরা ঐখানে লুপ থামিয়ে দিয়ে Invalid index বলে দিবো।

void insert_at_position(Node *&head, int index, int value)
{

    Node *newNode = new Node(value); // নতুন Node বানিয়ে নিলাম 

    Node *temp = head; // temp পয়েন্টার এ head রেখে দিলাম 

    for (int i = 1; i <= index - 1; i++)
    {
        temp = temp->next;
        if(temp==NULL){
        cout << "Invalid Index" << endl ;
        return ; // এখানে ফাংশন থামিয়ে দিবো , কারণ এই Invalid index নিয়ে কোনো কাজ করা যাবে না
       } 
    }
   
    newNode->next = temp->next; 
    temp->next = newNode; 
}

Error 2 : Delete At Any Position এ এমন একটি পজিশন এ Node Delete করতে চাওয়া যেখানে কোনো Node ই নেই। যেমনঃ 3 সাইজের একটি Linked list এর ১০ তম পজিশনে Node delete করা। এই ক্ষেত্রে segmentation fault হয়ে আমাদের crash হয়ে যায়। ঠিক আগের প্রবলেমের মতো। তা ছাড়া ও আমরা লুপ শেষ হয়ে যদি শেষ Index এ চলে আসি , এবং এই Node এর সাথে Next index কানেক্ট করতে চাই , তবে সেখানে কোনো Node থাকবে না , কারণ আমি already শেষ Node এই আছি। এটিও segmentation fault আসবে।

Handling : আগের মতো এই ক্ষেত্রে আমরা যদি দেখি Temp shift হতে হতে এক সময় Null এ চলে গেছে অর্থাৎ Invalid index এ চলে যায় , আমরা ঐখানে লুপ থামিয়ে দিয়ে Invalid index বলে দিবো। দ্বিতীয় ইরর এর জন্য আমরা চেক করে দেখবো temp node এর next এর next এ NULL আছে কিনা। NULL থাকলে এটি Invalid index.

Error 3: Delete head এর ক্ষেত্রে LInkded List যদি খালি হয়ে থাকে , তবে সেই ক্ষেত্রে head delete করলে segmentation fault হবে।

Handling : এই ক্ষেত্রে আমরা যদি দেখি head নেই /Null. অর্থাৎ লিঙ্কড লিস্ট খালি , তবে সেইক্ষেত্রে Invalid Index প্রিন্ট করে ফাংশন অফ করে দিবো।

Last updated