पायथन में स्किपिंग इटरेशंस


159

मेरे पास एक लूप है, लेकिन लूप के अंदर अपवादों को उठाए जाने की संभावना है। यह निश्चित रूप से मेरे कार्यक्रम को एक साथ रोक देगा। इसे रोकने के लिए मैं अपवादों को पकड़ता हूं और उन्हें संभालता हूं। लेकिन फिर एक अपवाद होने के बावजूद पुनरावृति चलती है। क्या except:वर्तमान खंड के बाकी हिस्सों को छोड़ने के लिए मेरे खंड में उपयोग करने के लिए कोई कीवर्ड है ?


4
यह न देखें कि स्वीकृत उत्तर (उपयोग continue) अपवादों को कैसे पकड़ता है, लेकिन इसे स्वीकार कर लिया गया। इसलिए, सवाल वास्तव में, वास्तव में भ्रमित करने वाला है।
S.Lott

@ S.Lott मुझे अपवाद को पकड़ने के लिए कीवर्ड की आवश्यकता नहीं है, मैं सिर्फ कुल कोड के सामान्य प्रवाह के बारे में बात कर रहा था।
अयंती।

@ The.Anti.9। क्या? पहले आपने कहा "मैं अपवादों को पकड़ना चाहता हूं"। अब आप कह रहे हैं "मुझे अपवाद को पकड़ने के लिए कीवर्ड की आवश्यकता नहीं है"। क्या आप इसे किसी तरह से स्पष्ट कर सकते हैं?
एस.लॉट 20

1
@ S.Lott। मुझे कीवर्ड के साथ अपवाद को पकड़ने की आवश्यकता नहीं है, कोड में बयान को छोड़कर, बस एक कोशिश करनी होगी ....
The.Anti.9

1
मैंने स्वीकार किए गए उत्तर से बेहतर मिलान करने के लिए प्रश्न को पुन: प्रस्तुत किया।
जिल्स डे बुद्धि

जवाबों:




17

कुछ इस तरह?

for i in xrange( someBigNumber ):
    try:
        doSomethingThatMightFail()
    except SomeException, e:
        continue
    doSomethingWhenNothingFailed()

1
पास के बजाय उपयोग जारी रखने का संपादन किया गया।
जिल्स डे बुद्धि

16

जारी रखने के लिए उदाहरण:

number = 0

for number in range(10):
   number = number + 1

   if number == 5:
      continue    # continue here

   print('Number is ' + str(number))

print('Out of loop')

आउटपुट:

Number is 1
Number is 2
Number is 3
Number is 4
Number is 6 # Note: 5 is skipped!!
Number is 7
Number is 8
Number is 9
Number is 10
Out of loop


5

इस विशिष्ट उपयोग-मामले के लिए उपयोग try..except..elseकरना सबसे साफ समाधान है, elseयदि कोई अपवाद नहीं उठाया गया था , तो खंड निष्पादित किया जाएगा।

नोट: elseखंड को सभी exceptखंडों का पालन करना चाहिए

for i in iterator:
    try:
        # Do something.
    except:
        # Handle exception
    else:
        # Continue doing something
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.