StopIteration
関連のないコードから例外がスローされないようにする方法はありますか (手動でキャッチする必要はありません)。
例:イテレータをループして、このイテレータが終了したら先にloop_all
進みたいとします。または他のコードが を発生させmyiter
ない限り、これは機能します。some_dangerous_method
myiter
StopIteration
def loop_all():
myiter = myiter()
try:
while True:
next(myiter) # <- I want exactly the StopIteration from this next method
except StopIteration:
pass
def myiter():
some_dangerous_method() # what if this also raises a StopIteration?
for i in some_other_iter():
# here may be more code
yield
StopIteration
コードが反応する対象を明確にする方法はありますか?