اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

Try و Except خاصّيتان تُستعملان للتعامل مع الأخطاء في لغة بايثون، جرّب مثلا قسمة عدد حقيقي على الصّفر. ستحصل على خطأ كالتّالي:

>>> 5/0

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>

ZeroDivisionError: integer division or modulo by zero

لاحظ نوع الخطأ: ZeroDivisionError

لنفرض بأنّنا نريد أن نحصل على عددين من المُستخدم وننفّذ القسمة بينهما. ماذا لو أدخل المُستخدم الصّفر كقيمة للعدد الثّاني؟
نستطيع أن نقوم بتجاوز هذا الخطأ وتنفيذ شيفرة عوضا عن طباعة جُملة الخطأ باستعمال التّجربة والاستثناء (Try and except).
يُمكننا مثلا طباعة الجملة "Integer should not be zero" عند مُحاولة تقسيم عدد مُعيّن على الصّفر كالتّالي:

num1 = raw_input("Enter the first number: ")
num2 = raw_input("Enter the second number: ")
num1 = int(num1) 
num2 = int(num2) 

try:
    print num1/num2
except ZeroDivisionError:
    print "Integer should not be zero"

لاحظ بأنّنا نُحاول أن نقوم بطباعة ناتج القسمة ونستثني خطأ القسمة على الصّفر، فإن حدث الخطأ سيقوم البرنامج بتنبيه المُستخدم إلى أنّ القسمة على الصّفر غير مُمكنة.
يُمكنك تطبيق هذا المبدأ على العديد من الدوال، فقط حاول تنفيذ الدّالة واستثن أي خطأ يُمكن أن يحدث، ولاستثناء جميع الأخطاء يُمكن كتابة except دون نوع مُعيّن كالتّالي:

try:
    # ...
except:
    # ...

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...