لماذا نعالج الأخطاء؟
دون معالجة، أي خطأ يوقف البرنامج فجأة. try/except تجعل البرنامج يتعامل
مع المشكلة بأناقة ويكمل:
try:
number = int(input("أدخل رقمًا: "))
print(10 / number)
except ValueError:
print("هذا ليس رقمًا!")
except ZeroDivisionError:
print("لا يمكن القسمة على صفر")
بنية try الكاملة
try:
result = 10 / 2
except ZeroDivisionError:
print("خطأ في القسمة")
else:
print(f"نجح: {result}") # يعمل إن لم يحدث خطأ
finally:
print("ينفّذ دائمًا") # سواء حدث خطأ أم لا
except: عند حدوث الخطأ.else: عند عدم حدوث خطأ.finally: في كل الأحوال (مثالي لإغلاق الملفات).
إطلاق خطأ بنفسك (raise)
def set_age(age):
if age < 0:
raise ValueError("العمر لا يمكن أن يكون سالبًا")
return age
try:
set_age(-5)
except ValueError as e:
print(e) # العمر لا يمكن أن يكون سالبًا
القيمة None
None تمثّل "لا قيمة" أو "فراغ"، وتُستخدم كثيرًا كقيمة افتراضية:
result = None
if result is None:
print("لم تُحسب النتيجة بعد")
⚠️ افحص
Noneبـisلا==: اكتبif x is Noneلاif x == None.
جرّب بنفسك
🐍 محرّر بايثون
...جارٍ تحميل المحرّر
اضغط «تشغيل» لرؤية النتيجة هنا.
أخطاء شائعة
- استخدام
except:عارية تبتلع كل الأخطاء وتخفي المشاكل — حدّد نوع الخطأ. - مقارنة
Noneبـ==بدلis.
🎯 التالي: التعامل مع الملفات (قراءة وكتابة).