شرح المفهوم
يصبح تصحيح الأخطاء في Java أسهل بكثير عندما تتعامل مع الأخطاء كدلائل بدلاً من مفاجآت. في هذا الدرس، ستفحص برنامجًا صغيرًا، وتكتشف سبب فشله، وتصلحه دون تغيير الهدف من الكود. ينصب التركيز على قراءة تتبعات المكدس (stack traces)، والتحقق من الافتراضات، وإجراء تصحيحات صغيرة وموجهة تحافظ على وضوح البرنامج وسهولة صيانته. بحلول النهاية، يجب أن تشعر براحة أكبر في تتبع المشكلات في برامج Java البسيطة وشرح سبب نجاح الإصلاح. Lesson fingerprint: java:Java Beginner:Java setup and execution model:beginner-java-setup-and-execution-model-3:3.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض الإخراج (print, canvas, SVG, أو styled block) في النهاية.
مرجع الأوامر
- شغّل البرنامج مرة بنص غير صالح ومرة بقيمة رقمية نظيفة.
- صف السبب الدقيق لفشل `Integer.parseInt` في هذا المثال.
- حدّث الكود بحيث تساعد الرسالة المستخدم على فهم الخطأ الذي حدث.
- لاحظ كيف يظهر هذا النوع من الأخطاء في النماذج (forms)، وملفات الإعداد (config files)، ومدخلات سطر الأوامر (command-line input).
دليل خطوة بخطوة
- شغّل الكود الأولي وحدد السطر الذي يمكن أن يرمي استثناءً (exception).
- اشرح في جملة واحدة لماذا المدخل الأصلي غير صالح للتحليل (parsing).
- استبدل الجزء الهش بإصدار أكثر أمانًا يحافظ على بساطة الكود.
- اختبر مدخلًا صالحًا وآخر غير صالح لتأكيد أن السلوك تغير كما هو متوقع.
- اختتم بقائمة تحقق قصيرة: رسالة مقروءة، عدم تعطل، إخراج صحيح.
تمارين تطبيقية
- جرّب ثلاثة مدخلات مختلفة مثل "42"، و"9x"، وسلسلة نصية فارغة، ثم سجل نتيجة كل منها.
- غيّر البرنامج بحيث يزيل المسافات (trims spaces) قبل التحليل (parsing).
- اكتب مثالًا ثانيًا يلتقط استثناءً (exception) مختلفًا بطريقة واقعية.
تحديات برمجية
- أنشئ دالة مساعدة (helper method) تُرجع إما رقمًا محللًا (parsed number) أو قيمة احتياطية (fallback value).
- قارن بين معالجة الخطأ باستخدام `try/catch` مقابل التحقق من صحة السلسلة النصية قبل التحليل (parsing).
مهام تمرين صغيرة
- أعد تسمية المتغيرات بحيث يكون غرضها واضحًا للوهلة الأولى.
- أضف رسالة إخراج واحدة أخرى سهلة الاستخدام للمستخدم.
- لخص الخطأ والإصلاح في سطر واحد.
خطأ شائع
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
تحدٍ مصغّر من الواقع
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.