شرح المفهوم
في هذا الدرس، ستتدرب على تصحيح أخطاء برنامج C++ صغير يفشل بطريقة متوقعة. الهدف ليس مجرد رؤية رسالة خطأ. الهدف هو تتبع سير العمل: تحديد ما يحاول الكود فعله، إعادة إنتاج المشكلة، ثم تحسين البرنامج ليصبح سلوكه أسهل في الفهم. هذه عادة تصحيح أخطاء مناسبة للمبتدئين وستكون مهمة لاحقًا عندما تصبح برامجك أكبر ويصبح مصدر المشكلة أقل وضوحًا.
أين تضع الكود
- ابدأ بالمتغيرات والمدخلات. اجعل التضمينات والدالة الرئيسية وأنواع البيانات واضحة.
- أضف منطق المعالجة في القسم الأوسط.
- اختتم بالمخرجات والتحقق السريع.
مرجع الأوامر
- شغّل البرنامج وتأكد من المدخل الذي يسبب مسار الفشل.
- غيّر القيم في `divideItems` لاختبار حالة عمل واحدة وحالة فشل واحدة.
- اجعل موقع الرمي وكتلة الالتقاط سهلة القراءة ليكون مسار الخطأ واضحًا.
- صف خيار تصحيح أخطاء واحد جعل البرنامج أسهل في الفحص.
دليل خطوة بخطوة
- قم ببناء وتشغيل المثال تمامًا كما هو مكتوب لملاحظة الخطأ الذي تم التعامل معه.
- حدد لماذا لا يمكن للدالة `divideItems(12, 0)` أن تنجح.
- غيّر الوسيط الثاني إلى رقم صالح وقارن المخرجات الجديدة.
- أضف أو عدّل رسالة واحدة لجعل حالة الفشل أوضح للمستخدم الذي يقرأ الطرفية.
- لخص في جملة واحدة كيف تساعد كتلتا `try` و`catch` أثناء تصحيح الأخطاء.
تمارين تطبيقية
- أضف استدعاء اختبار ثانيًا بقاسم صالح واطبع كلتا النتيجتين بوضوح.
- أعد كتابة المثال بحيث تتحقق الدالة من مدخلات سيئة أخرى مثل الصناديق السالبة.
- أنشئ تقريرًا صغيرًا في `main` يوضح ما إذا كانت كل حالة اختبار قد نجحت أم فشلت.
تحديات برمجية
- طبق نفس السيناريو مرة واحدة بفحوصات مباشرة ومرة أخرى باستخدام استثناء، ثم قارن سهولة القراءة.
- أعد هيكلة الكود بحيث يتم فصل منطق الحساب والرسائل الموجهة للمستخدم بشكل نظيف.
مهام تمرين صغيرة
- أعد تسمية متغير واحد لتسهيل تتبع قصد الكود.
- أضف حالة محمية إضافية واحدة وأعد تشغيل البرنامج.
- اكتب ملخصًا من سطر واحد للخطأ الذي صُمم هذا الدرس لكشفه.
خطأ شائع
Skipping input validation or mixing logic/output in one unstructured block.
تحدٍ مصغّر من الواقع
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.