Pythonにおける例外処理でのelseブロック
try-except構文には、elseブロックも追加できます。重要なポイントは、elseブロック内のコードは、それ以前のtry-except部分でいずれの例外も捕捉されなかった場合にのみ実行されることです。
以下のリストがあるとします:
lst = [1, 2, 3]
try-except構文で、リストに存在しない要素へのアクセスに対する例外を捕捉するコードを記述します:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
次に、elseブロックでリストの全要素の合計を出力するように設定してみましょう:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
tryブロック内のコードが存在しない要素にアクセスしようとすると、コンソールにはエラーメッセージが表示されます:
'error: elem is not exist'
今度は、tryブロックで確実にリスト内に存在する要素を出力するように設定します:
try:
print(lst[0])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
このコードを実行すると、コンソールには2つの数値、つまりtryブロックで指定された要素と、リストの全要素の合計が表示されます:
1
6
以下のリストが与えられています:
lst = [1, 2, 3]
ゼロ除算に関連する例外を捕捉するコードを記述してください。もしその例外が発生しなかった場合は、リストの長さを出力させてください。