কম্পিউটার টিউটোরিয়াল

C/C++-এ এরর (Errors) এর প্রকারভেদ


C বা C++-এ আমরা বিভিন্ন ধরনের এরর (error) ফেস করি। এই এররগুলো পাঁচটি ক্যাটাগরিতে ভাগ করা যায়। নিচে সেগুলো দেওয়া হলো:

  • সিনট্যাক্স এরর (Syntax Error)
  • রান-টাইম এরর (Run-Time Error)
  • লিংকার এরর (Linker Error)
  • লজিক্যাল এরর (Logical Error)
  • সিমান্টিক এরর (Semantic Error)

চলুন এগুলো একে একে দেখি।

সিনট্যাক্স এরর (Syntax Error)

এই ধরণের এররগুলো ঘটে যখন C++ লেখার নিয়ম বা সিনট্যাক্স লঙ্ঘন করা হয়। এই এররগুলো সাধারণত কম্পাইলার কম্পাইলেশনের আগে ইন্ডিকেট করে। কখনো কখনো এগুলোকে কম্পাইল টাইম এরর (compile time error) ও বলা হয়।

এই উদাহরণে আমরা দেখব কীভাবে সেমিকোলন না দিলে সিনট্যাক্স এরর হয়।

উদাহরণ

#include <stdio.h>
int main() {
    printf("Hello World")
}

আউটপুট

Error] expected ';' before '}' token

রান-টাইম এরর (Runtime Error)

এই ধরণের এররগুলো প্রোগ্রাম এক্সিকিউট হওয়ার সময় ঘটে। যেহেতু এটি কম্পাইলেশন এরর নয়, তাই কম্পাইলেশন সফল হয়। এই এরর চেক করতে পারেন যদি কোনো সংখ্যা ০ দিয়ে ভাগ করার চেষ্টা করা হয়।

উদাহরণ

#include <stdio.h>
int main() {
    int x = 52;
    int y = 0;
    printf("Div : %f", x/y);
}

আউটপুট

Program crashes during runtime.

লিংকার এরর (Linker Error)

এই ধরণের এররগুলো ঘটে যখন প্রোগ্রাম সফলভাবে কম্পাইল হয়েছে, কিন্তু বিভিন্ন অবজেক্ট ফাইল মেইন অবজেক্ট ফাইল এর সাথে লিংক করার সময় সমস্যা হয়। এই এরর হলে এক্সিকিউটেবল জেনারেট হয় না। উদাহরণস্বরূপ ভুল ফাংশন প্রোটোটাইপিং, ভুল হেডার ফাইল ইত্যাদি। যদি `main()` কে `Main()` লিখা হয়, তবে লিংকার এরর হবে।

উদাহরণ

#include <stdio.h>
int main() {
    int x = 52;
    int y = 0;
    printf("Div : %f", x/y);
}

আউটপুট

C:\crossdev\src\mingw-w64-v3-git\mingw-w64-crt\crt\crt0_c.c undefined reference to `WinMain'

লজিক্যাল এরর (Logical Error)

কখনো কখনো আমরা ডিজায়ারড আউটপুট পাই না। যদি সিনট্যাক্স এবং অন্য সব কিছু ঠিক থাকে, তবুও লজিক্যাল সমস্যায় সঠিক আউটপুট আসে না। এগুলোকে লজিক্যাল এরর বলে। উদাহরণস্বরূপ, একটি লুপের পর সেমিকোলন দিলে সেটি সিনট্যাক্টিক্যালি সঠিক, কিন্তু একটি ব্ল্যাঙ্ক লুপ তৈরি হয়। সেক্ষেত্রে ডিজায়ারড আউটপুট আসে না।

উদাহরণ

#include <stdio.h>
int main() {
    int i;
    for(i = 0; i < 5; i++); {
        printf("Hello World");
    }
}

আউটপুট

Here we want the line will be printed five times. But only one time it will be printed for the block of code.

সিমান্টিক এরর (Semantic Error)

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

উদাহরণ

#include <stdio.h>
int main() {
    int x, y, z;
    x = 10;
    y = 20;
    x + y = z;
}

আউটপুট

[Error] lvalue required as left operand of assignment
  1. C/C++-তে putwchar() ফাংশন

  2. C/C++-তে memcpy() ফাংশন

  3. AA ট্রি: C/C++-তে ব্যালেন্সড ট্রি ডেটা স্ট্রাকচার

  4. উইন্ডোজে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)