動きに確信が持てなかったので検証しました。
検証
コード1
while True:
try:
print('a')
raise Exception()
except Exception:
print('b')
break
finally:
print('c')
実行結果1
$ python3 loop.py
a
b
c
コード2
for i in range(0, 2):
try:
print('a')
if i == 0:
raise Exception()
except Exception:
print('b')
continue
finally:
print('c')
実行結果2
$ python3 loop.py
a
b
c
a
c
結論
ループ中のexcept
句でbreak
やcontinue
が実行された場合も、break
やcontinue
による処理の前にfinally
句の処理が実行される。