2009-02-14 20 views
69

Döngülerim var, ancak döngü içinde istisnaların oluşması olasılığı var. Bu elbette programımı hep birlikte durduracaktır. İstisnaları yakalayıp bunları işlemek için. Ancak, bir istisna meydana gelse de yinelemenin geri kalanı çalışır. Geçerli yinelemenin geri kalanını atlamak için except: maddesinde kullanmak üzere bir anahtar kelime var mı?Python'da yineleme yinelemeleri

+2

uymalı, ancak kabul edildi. Bu nedenle, soru gerçekten çok kafa karıştırıcı. –

+0

@ S.Lott Özel durumu yakalamak için anahtar kelimeye ihtiyacım yok, sadece toplam kodun genel akışından bahsediyordum. –

+0

@ The.Anti.9. Ne? İlk önce "İstisnaları yakalamak istiyorum" dedin. Artık "İstisnai yakalamak için anahtar kelimeye ihtiyacım yok" diyorsunuz. Bunu bir şekilde açıklayabilir misiniz? –

cevap

188

continue ürününe bakıyorsunuz. istisna büyüdü eğer

+11

Bu, her gördüğüm en özlü SO cevaplarından biri olmalı! –

+21

Asıl soru: 'P' Pythonic'de 'g' çıkarıyor mu? –

13

Böyle bir şey mi var?

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

Kullanılmak üzere düzenlenmiş geçmek yerine devam edin. –

7

Sana en temiz çözüm try..except..else kullanılarak bu özel kullanım örneği için continue

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

aradığınız düşünüyorum else bloğu icra edilecektir.

NOT: else fıkra kabul cevap (kullanım `CONTINUE) durumları yakalar nasıl göremiyor musunuz bütün except maddelerini

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