try وexcept: برنامج لا ينهار
تجعل كتلتا try وexcept البرنامج هادئًا حين يحدث خطأ. تجرّب بايثون أولًا الأسطر الواقعة تحت try. فإذا نجح كل شيء تُتخطى كتلة except. وإذا حدث خطأ ValueError قفزت بايثون مباشرة إلى except ValueError ونفّذت أسطرها. وينبغي أن تقول الرسالة للمستخدم ما يفعله، مثل Please type digits only، لا أن تكتفي بكلمة Error. وهناك صيغة أقصر هي except بلا اسم خطأ. وهي تلتقط كل أنواع الأخطاء، حتى أخطاء الكتابة التي نرتكبها نحن داخل كتلة try، ثم تعرض رسالة خاطئة. لذلك فالعادة الأفضل أن نسمّي الخطأ المتوقع. وانتبه إلى الشكل: try: وexcept ValueError: كل منهما في سطر مستقل والكود تحتهما مزاح.
1try: 2 books = int(input("How many books? ")) 3 print("Next year:", books + 1) 4except ValueError: 5 print("Please type digits only.")
How many books? seven Please type digits only.
| المكتوب | تعرض الشاشة |
|---|---|
| "7" | Next year: 8 |
| "seven" | Please type digits only. |
| "" (لا شيء) | Please type digits only. |
| "5.5" | Please type digits only. |
1try: 2 books = int(input("How many books? ")) 3 print("Next year:", bookz + 1) 4except: 5 print("Please type digits only.")
How many books? 7 Please type digits only.
اكتب على الورق برنامج try وexcept ValueError يسأل كم قلمًا هناك ويعرض العدد زائد 10. اكتب رسالة جيدة لكتلة except. ثم قل ما تعرضه الشاشة للقيمتين المكتوبتين 3 وthree.