Try Except في Python

try يسمح لك القفل باختبار الكود للبحث عن أخطاء.

except يسمح لك القفل بمعالجة الأخطاء.

finally يسمح لك القفل بتنفيذ الكود مهما كان نتيجة قفل try وexcept.

معالجة الاستثناءات

عندما نطلق Python وحدث خطأ أو استثناء، عادة ما نتوقف ونولد رسالة خطأ.

يمكنك استخدام try تعالج هذه الاستثناءات:

المثال

سيولد قفل try استثناءً، لأن x لم يتم تعريفه:

try:
  print(x)
except:
  print(\"حدث استثناء\")

تشغيل المثال

بسبب أن قفل try أطلق خطأ، سيتم تنفيذ قفل except.

إذا لم يكن هناك قفل try، فإن البرنامج سينهار ويطلق خطأ:

المثال

سيتم إطلاق خطأ، لأن x لم يتم تعريفه:

print(x)

تشغيل المثال

عديد من الاستثناءات

يمكنك تعريف أي عدد من أقسام الاستثناءات حسب الحاجة، على سبيل المثال، إذا كنت تريد تنفيذ كود خاص للخطأ الخاص بك

المثال

إذا حدث خطأ في قفل try NameError،则会打印 رسالة، وإذا كان هناك خطأ آخر فإنه سيتم طباعة رسالة أخرى:

try:
  print(x)
except NameError:
  print(\"غير معرف متغير x\")
except:
  print(\"شيء آخر حدث خطأ\")

تشغيل المثال

Else

إذا لم يكن هناك خطأ، يمكنك استخدام else كلمات مفتاحية لتحديد الكود الذي سيتم تنفيذه:

المثال

في هذا المثال،try القفل لا يولد أي أخطاء:

try:
  print(\"مرحبًا\")
except:
  print(\"شيء ما حدث خطأ\")
else:
  print(\"لم يحدث أي خطأ\")

تشغيل المثال

Finally

إذا تم تحديد finally إذا كان هناك قفل، فإنه سيتم تنفيذ القفل النهائي سواء كان يحتوي على خطأ أم لا.

المثال

try:
  print(x)
except:
  print(\"شيء ما حدث خطأ\")
finally:
  print(\"ال\'حاول استثنائي\' انتهى\")

تشغيل المثال

هذا مفيد جدًا للإغلاق والتنظيف للموارد.

المثال

تجربة فتح وكتابة ملف غير قابل للكتابة:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Something went wrong when writing to the file")
finally:
  f.close()

تشغيل المثال

يمكن للبرنامج الاستمرار وليس يفتح ملفًا معينًا.

إثارة الاستثناء

كمطور برمجيات Python، يمكنك اختيار إثارة الاستثناء عند حدوث شرط معين.

لإثارة الاستثناء (إثارة الاستثناء)، استخدم raise الكلمات المفتاحية.

المثال

إذا كان x أقل من 0، فإنه يسبب استثناءً ويؤدي إلى إنهاء البرنامج:

x = -1
if x < 0:
  raise Exception("Sorry, no numbers below zero")

تشغيل المثال

raise الكلمات المفتاحية لتحفيز الاستثناء.

يمكنك تعريف نوع الاستثناء الذي تريد إثارة، وكذلك النص الذي سيتم عرضه للمستخدم.

المثال

إذا كان x ليس عددًا صحيحًا، فإنه يسبب TypeError:

x = "hello"
if not type(x) is int:
  raise TypeError("Only integers are allowed")

تشغيل المثال