Pythonでは、エラーハンドリングにtry/except/finally
構文を使用します。この構文は、エラーが発生した場合にプログラムの実行を続けるためのものです。しかし、try/except/finally
ブロック内でcontinue
を使用すると、その挙動は少し複雑になります。
try/except/finallyとループ
Pythonのループ(for
やwhile
)内でtry/except/finally
を使用すると、continue
の挙動が特殊になります。具体的には、以下のようなコードを考えてみましょう。
for i in range(0, 2):
try:
print('a')
if i == 0:
raise Exception()
except Exception:
print('b')
continue
finally:
print('c')
このコードを実行すると、出力は次のようになります。
a
b
c
a
c
この結果から、except
ブロックでcontinue
が実行された場合でも、finally
ブロックの処理が実行されることがわかります。
まとめ
Pythonのtry/except/finally
構文は、エラーハンドリングに非常に便利です。しかし、ループ内でcontinue
を使用するときは、finally
ブロックの処理が必ず実行されることを覚えておきましょう。これにより、予期しない挙動を避けることができます。