• 0

ما هي try و except في البايثون؟

أريد شرح تفصيلي للـ try و except في البايثون؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

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:
    # ...

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن