반복자의 루프 외부에있는 반복 중 하나에서 intetartor가 던진 예외를 캡처하고 싶습니다.for 문에서 예외를 캡처하십시오.
이 코드의 매우 단순화 된 버전입니다 :
class C(object):
def _iter(self):
for x in range(100):
yield x, x + 3
def doit(self):
for a, b in self._iter(): # <-- how can I capture an excepcion here?
print(a, b)
내가 반복자 루프에서 예외를 캡처 할 수도 있지만 그러면 나는 어떻게보고의 doit
방법에 오류를 전달할 수 있습니다? 난 그냥 오류를 수집하고 다음 요소를 계속 doit
함수에있는 모든 방법을 전파 전파하게하고 싶습니다.
또한 모든 반복을 처리하고 오류를 수집하고 오류없이 모든 반복을 처리해야하므로 마지막에 모든 오류를보고 할 수 있습니다. 그렇게하면 단일 오류로 인해 다른 모든 요소가 처리되지 않습니다.
왜 * 내 * 오류로'_iter()'인스턴스 메소드를 처리하지? – jonrsharpe
@ F.C. 오류를 포착하고 처리 한 후 'for a, b in self._iter() :'루프를 계속 하시겠습니까? 나는 이것을 이렇게 해석하는 유일한 사람인가? – Nabla
@jonrsharpe'_iter '안에 모든 오류를 수집 할 수 없기 때문에'_iter'가 뭔가를 반환해야하기 때문에'doit'이 사용할 수 있습니다. –