العودة إلى الدورة

معالجة الأخطاء المتقدمة: `else` و `finally`

برمجة Python: معسكر التدريب من الصفر إلى الاحتراف

مكونات متقدمة لكتلة try

جملة else

تعمل كتلة else فقط إذا تم تنفيذ الكود داخل كتلة try بنجاح (أي لم يتم إثارة أي استثناء).

حالة الاستخدام: إجراء عمليات تعتمد على النجاح في كتلة try ، ولكنها هي نفسها قد تفشل (مما يحافظ على نظافة كتلة try).

python while True: try: user_input = int(input("Enter a number: ")) except ValueError: print("Invalid input. That was not a whole number.") else: # تعمل فقط إذا تم التحويل لـ int بنجاح print(f"Successfully read number: {user_input}") break

جملة finally

تعمل كتلة finally بغض النظر عما إذا كان قد حدث استثناء أم لا، وبغض النظر عما إذا كانت كتلة try قد اكتملت أو انتهت مبكراً (مثلاً بواسطة return أو break).

حالة الاستخدام: عمليات التنظيف، مثل إغلاق اتصالات الملفات أو تحرير موارد الشبكة.

python resource = None try: # نفترض أننا نفتح اتصالاً هنا resource = 1 result = 10 / 0 # سيثير هذا ZeroDivisionError except ZeroDivisionError: print("Caught the division error.") finally: # هذا يعمل دائماً if resource: print("Cleanup: Closing resource.") # البرنامج يخرج بأمان بعد التنظيف