أخطاء لا نستطيع تفاديها في لغة ++C

اقرأ في هذا المقال


بعد أن تتم عملية الترجمة بنجاح والحصول على الملف التنفيذي تأتي مرحلة تنفيذ البرنامج، ولكن ليس من المؤكد حصولنا على البرنامج التنفيذي في حال وجود أخطاء، وذلك يعتمد على نوع المترجم المستخدم وحسب نوع الخطأ، ولا بد من ارتكاب الأخطاء البرمجية في المحاولات الأولى من كتابة البرامج.

الأخطاء التي ترافق البرامج Errors:

هناك أربع أنواع من الأخطاء التي تحدث في الحاسوب في أثناء تنفيذ البرانامج، منها ما يكتشف اثناء عملية الترجمة أو الربط، ومنها ما يحدث أثناء تنفيذ البرنامج، ومنها المرئية.
الأخطاء الفادحة (fatal errors) أخطاء تُؤدي لتوقف عملية الترجمة أو عملية تنفيذ البرامج قبل أن تنجزعملها، أما الأخطاء غير الفادحة (non-fatal errors) تسمح للبرامج أن تستكمل تنفيذها ولكنها على الأغلب تتسبب في الحصول على نتائج خاطئة من البرنامج.

معظم المترجمات تساعدنا في اكتشاف تلك الأخطاء التي تحدث أثناء الترجمة، حيث تخبرنا عن الخطأ وعن رقم السطر الذي وجد فيه، ولكن المترجم لا يُشير لك عن مكان الخطأ بالضبط ولا عن طريقة تصحيحه، ولكنه سوف يلمح لك بذلك.

1- أخطاء المترجم (Compiler errors):

مثل هذه الأخطاء تحدث عند محاولة المترجم ترجمة البرنامج، وتنتج عن خطأ قواعدي في كتابة البرنامج، كأن ننسى وضع فاصلة منقوطة نهاية العبارة الكاملة.

2- أخطاء الربط (Linker errors):

أكثر الأخطاء التي تكون من هذا النوع تحدث حينما لا يتمكن الرابط من إيجاد الدوال أوعناصر البرنامج الأخرى والتي يُشار لها في البرنامج.

3- أخطاء وقت التنفيذ (Run-Time Errors):

وتُسمّى أيضا بأخطاء المعاني (Semantic Errors)، في بعض الأحيان لا يتم الكشف عن الخطأ إلا أثناء تنفيذ البرنامج، وهذه الأخطاء تحدث بسبب مخالفة القوانين أثناء تنفيذ البرنامج. حيث أن نظام التشغيل يقوم بجمع تلك المخالفات مثل: القسمة على الصفر، أو تطبيق عملية حسابية على نوع لا يتناسب مع تلك العملية خلال فترة تنفيذ البرنامج. كما أنها تُعتبر من الأخطاء الفادحة التي تُؤدي لتوقف عملية التنفيذ بالإضافة إلى إصدار رسالة من نظام التشغيل تبين السبب، ويُمكن الإستفادة من تلك الرسالة في تحديد موقع الخطأ في شيفرة البرنامج.

4- أخطاء مرئية (Conceptual errors):

هذه من الأخطاء التي يقع بها المترجم بسبب خطأ في الطباعة أو بسبب السهو، وهذه الأخطاء تُعتبر صحيحة بالنسبة للمترجم، ولكنها تعطي نتائج خاطئة.

ويجب ألّا تنس أيضاً أنه عند إجراء أيّ تغيير في نص البرنامج يجب أن تقوم بإعادة ترجمته حتى ينعكس ذلك التغيير على الملف التنفيذي، وذلك أيضًا يُعيد التأكيد على خلو برنامجك من الأخطاء وأنواعها.

المصدر: ++C من البداية إلى البرمجة الكيانية- د. نضال خضير العباديالبرمجة بلغة ++C -أبو مهابتعلم أن تبرمج بـ ++C - خالد بن عبدالرحمن الحصيّن


شارك المقالة: