実践 中級

54. 例外処理②:複数のexcept、finally

複数のexceptとfinally

1つの処理の中でも、起こりうるエラーは1種類とは限りません。exceptを複数並べて書くことで、エラーの種類ごとに個別の対応ができます。また、finallyブロックはエラーが起きたかどうかに関わらず、必ず最後に実行されるという特別な性質を持っています。ファイルを閉じるなどの「後片付け」を確実に行いたいときに重宝します。

サンプルコード

try:
    numbers = [1, 2, 3]
    print(numbers[10])
except IndexError:
    print('インデックスが範囲外です')
except Exception as e:
    print(f'その他のエラー: {e}')
finally:
    print('処理を終了します')
IndexErrorだけを専用のexceptで受け止めつつ、それ以外の想定外のエラーはExceptionという広いくくりでまとめて処理しています。finallyの中身は、エラーの有無に関わらず必ず最後に実行されます。

📝 練習問題

練習問題:辞書に存在しないキーへのアクセスをtry/exceptで囲み、KeyErrorをキャッチしてfinallyで「処理完了」と表示してください。