2009-02-14 45 views
69

Tôi có một vòng lặp đi, nhưng có khả năng xảy ra ngoại lệ trong vòng lặp. Điều này tất nhiên sẽ dừng chương trình của tôi lại với nhau. Để ngăn chặn điều đó, tôi nắm bắt các ngoại lệ và xử lý chúng. Nhưng sau đó phần còn lại của lặp lại chạy mặc dù một ngoại lệ đã xảy ra. Có một từ khóa để sử dụng trong mệnh đề except: của tôi để bỏ qua phần còn lại của lần lặp hiện tại không?Bỏ qua các lần lặp trong Python

+2

Đừng xem như thế nào là câu trả lời được chấp nhận (sử dụng 'CONTINUE') bắt ngoại lệ, nhưng nó đã được chấp nhận. Do đó, câu hỏi thực sự, thực sự khó hiểu. –

+0

@ S.Lott Tôi không cần từ khóa để bắt ngoại lệ, tôi chỉ nói về dòng chảy chung của toàn bộ mã. –

+0

@ The.Anti.9. Gì? Đầu tiên bạn nói "Tôi muốn bắt các ngoại lệ". Bây giờ bạn đang nói "Tôi không cần từ khóa để bắt ngoại lệ". Bạn có thể làm rõ điều này theo một cách nào đó không? –

Trả lời

188

Bạn đang tìm kiếm continue.

+11

Đây phải là một trong những câu trả lời SO gọn gàng nhất mà tôi từng thấy! –

+21

Câu hỏi thực sự: Là leavin ra 'g' trong 'lookin' Pythonic? –

13

Một cái gì đó như thế này?

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

Đã chỉnh sửa để sử dụng tiếp tục thay vì vượt qua. –

7

Tôi nghĩ rằng bạn đang tìm kiếm continue

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

Đối với trường hợp sử dụng cụ này sử dụng try..except..else là giải pháp sạch, mệnh đề else sẽ được thực hiện nếu không có ngoại lệ được nâng lên.

Chú ý: Mệnh đề else phải tuân theo tất cả các điều khoản except

for i in iterator: 
    try: 
     # Do something. 
    except: 
     # Handle exception 
    else: 
     # Continue doing something 
Các vấn đề liên quan