الدرس 8 من 8

افشل مبكرًا

هدف الدرس

يظهر الخطأ عند سببه لا بعده

01

الشرح

أسوأ الأخطاء ما يظهر بعيدًا عن سببه، فخصم بنسبة 150% يُنتج سعرًا سالبًا، ثم يمرّ هذا السعر في ثلاث دوال، ويظهر أخيرًا في الفاتورة ولا أحد يعرف من أين جاء.

والثابت (invariant) شرط يجب أن يصدق دائمًا، مثل أن يكون السعر رقمًا غير سالب، وأن تكون النسبة بين 0 و100، والدالة assert(condition, message) تفحص هذا الشرط في أول الدالة وترمي خطأً فورًا إن لم يتحقّق، فيظهر الخطأ عند سببه لا بعده بثلاث خطوات.

ورسالة الخطأ نصف الإصلاح، فعبارة «قيمة غير صالحة» لا تفيد أحدًا، أمّا إذا ذكرت ما كان متوقّعًا وما وصل فعلًا فسيعرف من يقرأ الخطأ أين يبحث من أول سطر.

02

المطلوب

اكتب assert(condition, message) لترمي Error بالرسالة المعطاة إذا لم يتحقّق الشرط، ثم استعملها في أول applyDiscount لتتأكّد أن السعر رقم غير سالب، وأن النسبة بين 0 و100 مع قبول الحدّين، واجعل رسالة النسبة تذكر القيمة التي وصلت.

الفحوص

5 فحوص
  1. الدالة assert لا تفعل شيئًا حين يتحقّق الشرط
  2. الدالة assert ترمي Error برسالتها حين لا يتحقّق الشرط
  3. النسبة فوق 100 تُرفض برسالة تذكر قيمتها
  4. السعر غير الصالح يُرفض
  5. المدخلات السليمة تمرّ والحدّان مقبولان
03

تلميحات

0/3
دروس المسارأتممت 0 من 8

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

مستواه متوسّط، وفيه 8 دروس مجموع مدّتها ساعة ونصف.

index.html
المعاينة
index.html100%
–/5

اضغط «تشغيل وتصحيح» ليبدأ الفحص.

تجد 5 فحوص في بطاقة «المطلوب».

دروس المسارأتممت 0 من 8

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

مستواه متوسّط، وفيه 8 دروس مجموع مدّتها ساعة ونصف.