مقدمة
في الدرس السابق تعرفنا على المكتبات (Libraries)، وعرفنا كيف تساعدنا على استخدام أدوات جاهزة بدلًا من كتابة كل شيء من الصفر.
لكن أثناء تشغيل البرامج قد تحدث أخطاء غير متوقعة، مثل إدخال المستخدم لقيمة غير صحيحة أو محاولة الوصول إلى ملف غير موجود.
ولهذا توفر Python نظامًا للتعامل مع هذه الأخطاء بطريقة منظمة يسمى الاستثناءات (Exceptions).
---
ما هو الاستثناء (Exception)؟
الاستثناء هو حدث يحدث أثناء تنفيذ البرنامج ويؤدي إلى مشكلة تمنع العملية الحالية من الاستمرار بالشكل الطبيعي.
بدلًا من ترك البرنامج يتوقف بشكل مفاجئ، يمكننا التعامل مع الاستثناء وتحديد ما يجب أن يحدث عند وقوعه.
---
لماذا نحتاج إلى التعامل مع الأخطاء؟
لا يمكن ضمان أن جميع البيانات والعمليات ستكون صحيحة دائمًا.
قد يدخل المستخدم بيانات غير متوقعة، أو قد تحدث مشكلة أثناء التعامل مع ملف أو اتصال خارجي.
لذلك يجب أن يكون البرنامج مستعدًا للتعامل مع الحالات غير المتوقعة.
---
try و except
توفر Python بنية أساسية للتعامل مع الاستثناءات باستخدام:
try
تحتوي على الكود الذي قد يحدث فيه استثناء.
except
تحدد ما الذي يجب فعله إذا حدث الاستثناء.
وهذا يسمح للبرنامج بالتعامل مع الخطأ بدلًا من التوقف مباشرة.
---
else
يمكن استخدام else مع معالجة الاستثناءات.
يتم تنفيذ الجزء الموجود داخل "else" عندما تنتهي التعليمات الموجودة في "try" دون حدوث استثناء.
وهذا يساعد على فصل الكود الذي يعتمد على نجاح العملية عن كود معالجة الأخطاء.
---
finally
يمكن أيضًا استخدام finally.
يتم تنفيذ هذا الجزء سواء حدث استثناء أم لا.
ويكون مفيدًا عند وجود عملية يجب تنفيذها في النهاية، مثل تنظيف بعض الموارد المستخدمة.
---
أنواع الاستثناءات
توفر Python أنواعًا مختلفة من الاستثناءات حسب نوع المشكلة.
ومن أمثلتها:
- "ValueError"
- "TypeError"
- "IndexError"
- "KeyError"
- "FileNotFoundError"
كل نوع يساعد على تحديد طبيعة المشكلة بشكل أوضح.
---
رفع الاستثناءات
يمكن للمبرمج أيضًا إنشاء استثناء بنفسه عندما تكون هناك حالة غير صحيحة يجب منعها.
وهذا يسمح بفرض شروط معينة داخل البرنامج وإظهار المشكلة بطريقة واضحة.
---
أهمية معالجة الاستثناءات
تساعد معالجة الاستثناءات على جعل البرامج أكثر قوة واستقرارًا.
فبدلًا من توقف البرنامج بالكامل عند حدوث مشكلة، يمكن التعامل معها وإعطاء المستخدم رسالة مناسبة أو تنفيذ إجراء بديل.
---
استخدام الاستثناءات في المشاريع
تستخدم معالجة الأخطاء في العديد من المشاريع، مثل:
- تطبيقات الويب.
- البرامج المكتبية.
- الألعاب.
- التعامل مع الملفات.
- الاتصال بقواعد البيانات.
- معالجة بيانات المستخدمين.
---
فوائد التعامل مع الاستثناءات
من أهم الفوائد:
- منع توقف البرنامج بشكل غير متوقع.
- تحسين تجربة المستخدم.
- اكتشاف المشاكل والتعامل معها.
- جعل الكود أكثر موثوقية.
- تسهيل صيانة البرامج.
---
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
- استخدام "except" بشكل عام دون تحديد نوع الخطأ عند الحاجة.
- إخفاء الأخطاء بدلًا من التعامل معها.
- وضع كمية كبيرة من الكود داخل "try".
- تجاهل سبب الاستثناء الحقيقي.
لذلك يجب معالجة الأخطاء بوضوح وعدم استخدام الاستثناءات لإخفاء المشاكل البرمجية.
---
ملخص الدرس
تعرفنا في هذا الدرس على الاستثناءات (Exceptions) في Python، وعرفنا كيف يمكن استخدام "try" و"except" و"else" و"finally" للتعامل مع الأخطاء بطريقة منظمة، كما تعرفنا على بعض أنواع الاستثناءات وكيفية التعامل معها.
في الدرس الثاني والثلاثون سنتعرف على التعامل مع الملفات (File Handling)، وسنفهم كيف يمكن لبرنامج Python قراءة الملفات وكتابتها وإدارتها.



