خطاها و سرریزی متغیر

«خطاي زمان کامپايل»

اين قبيل خطاها که اغلب خطاهاي نحوي هستند ، توسط کامپايلر کشف مي‌شوند و به راحتي مي‌توان آن‌ها را رفع نمود.

«خطاي زمان اجرا»

کشف اينگونه خطاها به راحتي ممکن نيست و کامپايلر نيز چيزي راجع به آن نمي‌داند. برخي از خطاهاي زمان اجرا سبب مي‌شوند که برنامه به طور کامل متوقف شود و از کار بيفتد.

سرريزي عددي

يک متغير هر قدر هم که گنجايش داشته باشد، بالاخره مقداري هست که از گنجايش آن متغير بيشتر باشد. اگر سعي کنيم در يک متغير مقداري قرار دهيم که از گنجايش آن متغير فراتر باشد، متغير «سرريز» مي‌شود،در چنين حالتي مي‌گوييم که خطاي سرريزي رخ داده است. وقتي يک عدد صحيح سرريز شود، عدد سرريز شده به يک مقدار منفي «گردانيده» مي‌شود اما وقتي يک عدد مميز شناور سرريز شود، نماد inf به معناي بي‌نهايت را به دست مي‌دهد. هيچ‌گاه از متغير مميز شناور براي مقايسه برابري استفاده نکنيد» زيرا در متغيرهاي مميز شناور خطاي گرد کردن سبب مي‌شود که پاسخ با آن چه مورد نظر شماست متفاوت باشد. خطاي‌ گرد كردن‌ نوع‌ ديگري‌ از خطاست‌ كه‌ اغلب‌ وقتي‌ رايانه‌ها روي‌ اعداد حقيقي‌ محاسبه‌ مي‌كنند، رخ‌ مي‌دهد. براي‌ مثال‌ عدد 1/3ممكن‌ است‌ به‌ صورت‌ 0.333333 ذخيره‌ شود كه‌ دقيقا معادل‌ 1/3 نيست‌ اين خطا از آن‌جا ناشي مي‌شود که اعدادي مثل 1/3 مقدار دقيق ندارند و رايانه نمي‌تواند اين مقدار را پيدا کند، پس نزديک‌ترين عدد قابل محاسبه را به جاي چنين اعدادي منظور مي‌کند.