خاصية try-except
في لغة Python هي آلية قوية للتعامل مع الأخطاء والاستثناءات التي قد تحدث أثناء تنفيذ البرنامج. تسمح لك هذه الخاصية بتجربة جزء من الكود، وإذا حدث خطأ ما، فبدلاً من توقف البرنامج بشكل مفاجئ، يتم التعامل مع هذا الخطأ بطريقة محددة.
شرح مبسط:
تخيل أنك تقوم بعملية حسابية قد تتسبب في القسمة على صفر، وهو خطأ برمجي. باستخدام try-except
، يمكنك وضع العملية الحسابية داخل كتلة try
، وإذا حدثت القسمة على صفر، يتم تنفيذ كتلة except
التي تحتوي على كود للتعامل مع هذا الخطأ، مثل طباعة رسالة خطأ أو اتخاذ إجراء بديل.
الصيغة العامة:
Python
try: # الكود الذي قد يسبب خطأ # ...except نوع_الاستثناء: # الكود الذي يتم تنفيذه في حالة حدوث الاستثناء المحدد # ...except نوع_استثناء_آخر: # يمكنك إضافة أكثر من except للتعامل مع أنواع مختلفة من الأخطاء # ...else: # الكود الذي يتم تنفيذه إذا لم يحدث أي استثناء في كتلة try # ...finally: # الكود الذي يتم تنفيذه دائمًا، سواء حدث استثناء أم لا # ...
شرح المكونات:
try
: تحتوي على الكود الذي نتوقع أنه قد يسبب استثناءً.except
: تحدد نوع الاستثناء الذي سيتم التعامل معه. يمكنك تحديد نوع استثناء معين (مثلZeroDivisionError
للقسمة على صفر، أوTypeError
لمحاولة إجراء عملية على أنواع بيانات غير متوافقة)، أو يمكنك استخدامexcept
بدون تحديد نوع للتعامل مع أي نوع من الاستثناءات (ولكن هذا غير مستحسن لأنه قد يخفي أخطاء أخرى). يمكنك إضافة أكثر منexcept
للتعامل مع أنواع مختلفة من الاستثناءات بشكل منفصل.else
: (اختياري) يتم تنفيذ الكود الموجود داخل كتلةelse
فقط إذا لم يحدث أي استثناء في كتلةtry
.finally
: (اختياري) يتم تنفيذ الكود الموجود داخل كتلةfinally
دائمًا، سواء حدث استثناء أم لم يحدث. يستخدم عادةً لتنظيف الموارد، مثل إغلاق الملفات أو الاتصالات.
مثال:
Python
try: num1 = int(input("أدخل الرقم الأول: ")) num2 = int(input("أدخل الرقم الثاني: ")) result = num1 / num2 print("النتيجة:", result)except ZeroDivisionError: print("خطأ: لا يمكن القسمة على صفر.")except ValueError: print("خطأ: الرجاء إدخال أرقام صحيحة فقط.")else: print("تمت العملية بنجاح.")finally: print("انتهى البرنامج.")
في هذا المثال:
- إذا قام المستخدم بإدخال صفر كـ
num2
، سيتم التقاط استثناءZeroDivisionError
، وسيتم طباعة رسالة الخطأ المناسبة. - إذا قام المستخدم بإدخال قيمة غير رقمية، سيتم التقاط استثناء
ValueError
، وسيتم طباعة رسالة الخطأ المناسبة. - إذا لم يحدث أي خطأ، سيتم تنفيذ كتلة
else
، وسيتم طباعة "تمت العملية بنجاح.". - سيتم تنفيذ كتلة
finally
دائمًا، وسيتم طباعة "انتهى البرنامج.".
فوائد استخدام try-except
:
- منع توقف البرنامج: يمنع البرنامج من التوقف بشكل مفاجئ عند حدوث خطأ.
- التعامل مع الأخطاء بشكل منظم: يسمح لك بتحديد كيفية التعامل مع أنواع مختلفة من الأخطاء.
- تحسين تجربة المستخدم: يوفر رسائل خطأ واضحة للمستخدم بدلاً من رسائل خطأ النظام المعقدة.
- كتابة كود أكثر قوة ومرونة: يجعل الكود أكثر قدرة على تحمل الأخطاء والظروف غير المتوقعة.
باختصار، try-except
أساسية في لغة Python لكتابة برامج تتعامل مع الأخطاء