جاري التحميل...

التقاط الخطأ

الأسطر التي قد تتوقف تضعها تحت try. except يسمّي التوقف الذي ستتعامل معه. except ZeroDivisionError يعمل فقط إذا كان التوقف داخل try بهذا الاسم. بعد try و except معًا، يتابع البرنامج.

يُلتقط التوقف، و rice لا يعمل، و done يعمل

python
try:
    print(1 / 0)
    print("rice")
except ZeroDivisionError:
    print("skip")

print("done")

على الشاشة skip ثم done. print(1 / 0) يتوقف داخل try. print("rice") ما زال داخل try، فلا يعمل. التقاط التوقف لا يرجع ليُكمل بقية try. except يكتب skip. print("done") في الخارج، فيعمل بعد الالتقاط. البرنامج لا ينتهي عند هذا التوقف.

الاسم يجب أن يطابق. ضع print(tea) داخل هذا try ولا تعط tea قيمة: التوقف هو NameError. except ZeroDivisionError لا يتعامل مع ذلك الاسم. البرنامج يتوقف مع ذلك. لا يُكتب skip ولا done. هذا السطر ليس في برنامج هذه الصفحة.

إذا انتهت كل الأسطر داخل try، فإن except لا يعمل. البرنامج التالي يبدأ من جديد. لا شيء من الشاشة الأولى ما زال هنا.

لا توقف، فلا يُكتب skip

python
try:
    print(8 / 2)
except ZeroDivisionError:
    print("skip")

print("done")

على الشاشة 4.0 ثم done. 4.0 هي أربعة بنقطة عشرية. لم يكن هناك توقف، فلا يُكتب skip. done يعمل مع ذلك، لأنه خارج الالتقاط.

الأسطر تحت try وتحت except مزاحة إلى الداخل. هذه الإزاحة هي التي تضعها في الداخل. print("done") ليست مزاحة تحت except، فليست جزءًا من الالتقاط. تعمل حين ينتهي try، وتعمل أيضًا حين يُلتقط التوقف المسمّى.

الصفحة التالية أن تصنع توقفًا بنفسك. هذه الصفحة تلتقط فقط توقفًا اصطدمت به سطر من قبل، وفقط حين يطابق الاسم.

ماذا يُكتب، وماذا يُتجاوز

  1. ماذا يكتب البرنامج الأول؟
  2. ماذا يحدث لـ print("rice")؟
  3. ماذا يكتب البرنامج الثاني؟
  4. ماذا يحدث إذا كان print(tea) داخل try، ولم تُعطَ tea قيمة، و except يسمّي ZeroDivisionError فقط؟

الاسم يجب أن يطابق

الشاشة الأولى skip ثم done. rice لا يعمل، لأنه ما زال داخل try بعد التوقف. الشاشة الثانية 4.0 ثم done، و skip لا يُكتب. NameError لا يلتقطه except ZeroDivisionError. done في الخارج، فيعمل عند التقاط التوقف المسمّى وعند انتهاء try. الصفحة التالية أن تصنع توقفًا بنفسك.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
5
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى