나는 생성자를 생성하기 위해 함수 f
을 사용하지만 때때로 오류가 발생할 수 있습니다. 나는 현실에서 (오류를 생성하는 인덱스를 인쇄,yield 조합을 제외한 파이썬 시도
- 주요 블록의
for
루프가except
에서 오류 - 잡는 후 계속 주요 코드를 발생하는 두 가지 일을하고자하는 오류 수도 인덱스 3에 대해 발생하지 않음)
오류 발생 후 중단 된 코드가 중지되었습니다. 앞서 언급 한 두 가지 기능을 어떻게 구현해야합니까? 많은 감사합니다.
def f(n):
for i in xrange(n):
if i == 3:
raise ValueError('hit 3')
yield i
if __name__ == '__main__':
a = enumerate(f(10))
try:
for i, x in a:
print i, x
except ValueError:
print 'you have a problem with index x'
제네레이터 내부에서 예외가 발생하는 경우 물론 제네레이터 자체에서 예외를 catch하지 않는 한 해당 제너레이터의 실행을 다시 시작할 방법이 없습니다. – vaultah
iterator 안의'for '또는'main'의'for'를 계속 하시겠습니까? ... –
메인 블록에서'for'가 계속되기를 원합니다. 원래 게시물이 수정되었습니다. – nos