2009-02-14 21 views
69

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

+2

का पालन नहीं दिखाई दे रही है कैसे स्वीकार किए जाते हैं जवाब (प्रयोग 'CONTINUE') अपवाद पकड़ता चाहिए, लेकिन यह स्वीकार कर लिया गया। इसलिए, सवाल वास्तव में, वास्तव में भ्रमित है। –

+0

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

+0

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

उत्तर

188

आप continue के लिए देख रहे हैं।

+11

यह सबसे संक्षिप्त एसओ उत्तरों में से एक होना चाहिए जो मैंने देखा है! –

+21

असली सवाल: क्या 'लुकिन' में 'g' बाहर लेविन पाइथोनिक है? –

13

ऐसा कुछ?

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

पास करने के बजाय जारी रखने के लिए संपादित किया गया। –

7

मुझे लगता है कि आप इस विशिष्ट यूज-केस try..except..else साफ समाधान का उपयोग कर रहा है के लिए के लिए continue

36
for i in iterator: 
    try: 
     # Do something. 
     pass 
    except: 
     # Continue to next iteration. 
     continue 
1

देख रहे हैं, else खंड अगर कोई अपवाद नहीं उठाया गया था निष्पादित किया जाएगा।

नोट: else खंड सभी except खंड

for i in iterator: 
    try: 
     # Do something. 
    except: 
     # Handle exception 
    else: 
     # Continue doing something