16. معالجة الأخطاء
الهدف
رابط إلى قسم «الهدف»أن تكتب دالة قد تفشل، وتعالج فشلها: بقيمة بديلة، أو بكتلة تعرف سبب الخطأ، أو بتمريره إلى من استدعاها.
الشرح
رابط إلى قسم «الشرح»- دالة قد تفشل تكتب
!قبل نوع إرجاعها:!عدد. وعند الفشل ترجعخطأ.اسم. - تعرّف أسماء أخطائك في كتلة
اخطاء:في أول الملف. ن = ف() والا 0: إن فشلت فالقيمة 0. ووالا خ:ثم كتلة: فيهاخاسم الخطأ، وآخر سطر فيها هو القيمة البديلة.جرّب ف()داخل دالة!نوع: إن فشلتفخرجت دالتك بالخطأ نفسه.- نسيان المعالجة خطأ ترجمة: لا يصل برنامجك إلى التشغيل وفيه فشل لم تقرر ماذا تفعل به.
اخطاء: قسمة_على_صفر
داله اقسم(ا عدد, ب عدد) !عدد: اذا ب == 0: ارجع خطأ.قسمة_على_صفر ارجع ا / ب
اطبع(اقسم(10, 2) والا -1)اطبع(اقسم(10, 0) والا -1)ن = اقسم(7, 0) والا خ: اطبع("فشل: ", خ) 0اطبع(ن)جرّب تمرّر أول فشل إلى من استدعى الدالة:
داله مجموع_نصين(ا نص, ب نص) !عدد: س = جرّب عدد(ا) ص = جرّب عدد(ب) ارجع س + ص
اطبع(مجموع_نصين("4", "5") والا -1)اطبع(مجموع_نصين("4", "خمسة") والا -1)الحدود اليوم (0.10.0): الخطأ اسم فقط بلا بيانات معه (لا «أي سطر» ولا «أي ملف»)، وتوقيع الدالة لا يذكر أي الأخطاء ترجع. وأخطاء التشغيل مثل القسمة على صفر أو الفهرس خارج القائمة ليست من هذا النوع: لا تُعالَج، وتنهي البرنامج برمز 3. التفصيل في التعامل مع الأخطاء.
تمرين
رابط إلى قسم «تمرين»دالة اقرأ_عمر(ن نص) !عدد تحوّل النص إلى عدد بـ جرّب، وترجع خطأك عمر_غير_معقول إن كان العمر أقل من 0 أو أكثر من 150. جرّبها على «30» و«ثلاثون» و«200»، واطبع لكل حالة سبب الفشل بـ حالات.
اعرض الحل
اخطاء: عمر_غير_معقول
داله اقرأ_عمر(ن نص) !عدد: ع = جرّب عدد(ن) اذا ع < 0 او ع > 150: ارجع خطأ.عمر_غير_معقول ارجع ع
لكل ن في ["30", "ثلاثون", "200"]: ع = اقرأ_عمر(ن) والا خ: حالات خ: حاله خطأ.عمر_غير_معقول: اطبع(ن, ": عمر غير معقول") حاله _: اطبع(ن, ": ليس عدداً (", خ, ")") تجاوز اطبع(ن, ": العمر ", ع)الأخطاء الشائعة
رابط إلى قسم «الأخطاء الشائعة»استعمال نتيجة !عدد كأنها عدد، بلا جرّب ولا والا:
داله نصف(ن نص) !عدد: ارجع جرّب عدد(ن) / 2
اطبع(نصف("8"))رمز الخروج: 2
في فهرس الأخطاء: E0399
والإصلاح: اطبع(نصف("8") والا 0)، أو جرّب داخل دالة ترجع !نوع.
اقرأ أيضاً
رابط إلى قسم «اقرأ أيضاً»معالجة الأخطاء في المرجع · التعامل مع الأخطاء