複数のexceptとfinally
1つの処理の中でも、起こりうるエラーは1種類とは限りません。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('処理を終了します')練習問題:辞書に存在しないキーへのアクセスをtry/exceptで囲み、KeyErrorをキャッチしてfinallyで「処理完了」と表示してください。
data = {'a': 1}
try:
print(data['b'])
except KeyError:
print('キーが存在しません')
finally:
print('処理完了')