📌 ما هي معالجة الأخطاء؟
أحيانًا أثناء تشغيل البرنامج تحدث أخطاء (مثل القسمة على صفر أو محاولة فتح ملف غير موجود). إذا لم نتعامل مع هذه الأخطاء، سيتوقف البرنامج فجأة.
✨ الحل؟ نستخدم:
try:
# كود قد يسبب خطأ
except:
# كود يُنفذ في حال حدوث خطأ
🧠 مثال بسيط:
try:
x = int(input("أدخل رقمًا: "))
y = int(input("أدخل رقمًا آخر: "))
result = x / y
print("الناتج:", result)
except ZeroDivisionError:
print("❌ لا يمكن القسمة على صفر!")
except ValueError:
print("❌ يرجى إدخال أرقام فقط!")
except:
print("❌ حدث خطأ غير معروف!")
✅ الناتج:
لو أدخل المستخدم 5 و0، سيظهر:
❌ لا يمكن القسمة على صفر!
✅ استخدام finally
try:
f = open("data.txt")
except FileNotFoundError:
print("❌ الملف غير موجود")
finally:
print("🔁 محاولة فتح الملف انتهت")
📚 ملخص:
try: نجرب تشغيل كود قد يسبب خطأ.except: نتعامل مع الخطأ إن وُجد.finally: ينفذ دائمًا سواء حصل خطأ أو لا.
✅ التمرين:
اكتب برنامجًا يطلب من المستخدم إدخال رقمين (x و y) ويقوم بقسمتهما.
✔️ إذا أدخل المستخدم قيمة غير رقمية، يظهر له تنبيه.
✔️ إذا حاول القسمة على صفر، يظهر تنبيه مناسب.
✔️ وفي كل الأحوال، اطبع رسالة في النهاية تفيد بانتهاء العملية.
🧪 جربه بنفسك أولًا قبل مشاهدة الحل
✅ الحل:
try:
x = int(input("أدخل الرقم الأول: "))
y = int(input("أدخل الرقم الثاني: "))
result = x / y
print("الناتج هو:", result)
except ValueError:
print("❌ يرجى إدخال أرقام صحيحة فقط.")
except ZeroDivisionError:
print("❌ لا يمكن القسمة على صفر.")
except:
print("❌ حدث خطأ غير معروف.")
finally:
print("✅ انتهت العملية.")
📝 شرح سريع:
ValueError: عند إدخال شيء غير رقمي مثل "abc".ZeroDivisionError: عند محاولة القسمة على 0.finally: تظهر دائمًا رسالة "انتهت العملية" سواء تم الحساب أو حدث خطأ.

