Semantic Error (خطای سمنتیک)

هنگامی که کد ما از نظر syntax درست است، اما کاری که هدف برنامه نویس نبوده است انجام می شود، Semantic Error (خطای سمنتیک) تولید می شود.

چند مثال از خطای سمنیتک در زبان ++ c به صورت زیر است:

گاهی مواقع این خطا باعث می شود برنامه مشکل پیدا کند و متوقف شود. تقسیم بر صفر یکی از این موارد است....

#include <iostream>
 
int main()
{
    int a { 10 };
    int b { 0 };
    std::cout << a << " / " << b << " = " << a / b; // division by 0 is undefined
    return 0;
}

خیلی از مواقع نیز رفتار اشتباه، باعث این خطا می شود و برنامه کار می کند اما نتیجه ای که انتظار می رود را نمی دهد. برای مثال اگر تابع add را برای جمع کردن دو عدد تعریف کنیم اما این تابع دو عدد را از هم کم کند، خطای سمنتیک به وجود آورده ایم...

#include <iostream>
 
int add(int x, int y)
{
    return x - y; // function is supposed to add, but it doesn't
}
 
int main()
{
    << add(5, 3); // should produce 8, but produces 2
 
    return 0;
}

خطاهای سمنتیک بعد از تفسیر یا کامپایل کد به وجود می آیند؛ اگرچه اکنون برخی از کامپایلرها و مفسرها، بعضی از خطاهای سمنتیک مانند استفاده از متغیری که تعریف نشده است را تشخیص می دهند. پیدا کردن و رفع کردن خطاهای سمنتیک به مراتب از خطاهای سینتکس سخت تر است.

online-support-icon