معالجة الاستثناءات (Exception Handling)
في مجال البرمجة، يتم التعامل مع الأخطاء التي قد تحدث أثناء تنفيذ البرنامج من خلال عملية معالجة الاستثناءات بشكل يمكن التحكم فيه، بدلاً من السماح للبرنامج بالتوقف بشكل غير متوقع. في لغة البرمجة بايثون، يتم استخدام try و except لهذا الغرض. بالإضافة إلى ذلك، يمكن استخدام else و finally لتحسين كيفية التعامل مع الأخطاء. تتيح كتلة try اختبار مجموعة من التعليمات البرمجية بحثًا عن أخطاء بينما تتيح كتلة except التعامل مع الخطأ. بدورها، تُستخدم else لتنفيذ التعليمات البرمجية عندما لا يكون هناك خطأ، وتستخدم finally لتنفيذ التعليمات البرمجية بغض النظر عن نتيجة كتلتي try و except.
عندما نعيد النظر في الخطوة 9، سنجد أن البرنامج كان يطلب من المستخدم إدخال رقم صحيح، ثم يقوم بطباعة الرقم السابق له والرقم اللاحق له. واجه المستخدم صعوبة عندما حاول إدخال قيمة غير قابلة للتحويل إلى رقم صحيح. لحل هذه المشكلة ومنع توقف البرنامج عن العمل، يمكن استخدام معالجة الاستثناءات على النحو التالي:
Number = input(' أدخل رقم صحيح')
try:
NxtNum = int(Number) + 1
PrvNum = int(Number) - 1
print(' الرقم التالي', NxtNum)
print(' الرقم السابق', PrvNum)
except:
print("خطأ في القيمة المدخلة: ليست رقم صحيح")
بعد استقبال القيمة من المستخدم، يقوم هذا البرنامج بمحاولة تحويل المدخلات إلى عدد صحيح باستخدام دالة التهيئة ()int. إذا نجح في التحويل، يقوم البرنامج بحساب الرقم التالي والرقم السابق وعرضهما على الشاشة. أما إذا كانت القيمة المدخلة غير قابلة للتحويل إلى عدد صحيح (مثل إدخال نص أو أحرف)، فإن البرنامج يسيطر على الخطأ ويعرض رسالة تفيد بوجود خطأ في القيمة المدخلة.
لتوضيح دور finally و else، يمكن إضافتهما إلى النص البرمجي السابق على النحو التالي:
Number = input(' أدخل رقم صحيح')
try:
NxtNum = int(Number) + 1
PrvNum = int(Number) - 1
print(' الرقم التالي', NxtNum)
print(' الرقم السابق', PrvNum)
except:
print("خطأ في القيمة المدخلة: ليست رقم صحيح")
else :
print("تم تنفيذ البرنامج بنجاح")
finally :
print("انتهى تنفيذ البرنامج")
بعد استقبال القيمة من المستخدم، يقوم هذا البرنامج بمحاولة تحويل المدخلات إلى عدد صحيح باستخدام دالة التهيئة ()int. إذا نجح التحويل، يحسب البرنامج الرقم التالي والرقم السابق ويعرضهما، وينفذ جملة else التي تخبر المستخدم بنجاح تنفيذ البرنامج. أأما إذا فشل التحويل بسبب إدخال قيمة غير صحيحة، يتم عرض رسالة توضح الخطأ باستخدام جملة except. في النهاية، بغض النظر عن نجاح أو فشل العملية، تنفذ جملة finally التي تطبع رسالة تنهي تنفيذ البرنامج.
جرب ذلك!