• 0

كيف أعيد تجربة تعليمات معينة بعد استثناء في بايثون؟

لدي حلقة تكرار تبدأ بـ for i in range(0, 100) وهي تعمل في العادة بدون مشاكل لكن في بعض الأحيان تفشل بسبب مشاكل في الشبكة، فكيف أستطيع الاستمرار في حلقة التكرار وتجاهل الاستثناء (exception)؟ أي الاستمرار إلى العدد التالي للمتغير I.

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


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

هنالك عدّة حلول في لغة بايثون للتعامل مع إعادة تجربة سطور برمجية معينة بعد الاستثناء (exception)، فيمكنك على سبيل المثال وضع حلقة تكرار While True داخل حلقة التكرار الرئيسية والتي هي في حالتك حلقة for وبعد ذلك أخرج منها فقط في حالة كانت عملية تنفيذ السطور البرمجية صحيحة كما في المثال التالي:

for i in range(0,100):
    while True:
        try:
            # do stuff
        except SomeSpecificException:
            continue
        break

كما يمكنك وضع عدد معين من محاولات إعادة التكرار كما يظهر في المثال التالي:

for i in range(100):
  for attempt in range(10):
    try:
      # do thing
    except:
      # perhaps reconnect, etc.
    else:
      break
  else:
    # we failed all the attempts - deal with the consequences.

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


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

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

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

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


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

تسجيل الدخول

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


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