注意してほしいのは、except節に書く例外クラスの順番だ。試しに、「except Exception as e:」節を一番上に書いてみよう(以下のコードではtry節を省略しているので、コードをコピー&ペーストで試している人は、上のコードでexcept節の順序だけを変えるようにしよう)。
while True:
try:
# 省略
except Exception as e:
print('Exception')
print(e.args)
print()
except ValueError as e:
print('Value Error')
print(e.args)
print()
except IndexError:
print('Index Error')
print()
print('try文の直後の行を実行しました')
print('無限ループを終了しました')
これでコードを実行して、先ほどと同様に選択肢「2」を入力するとどうなるだろう。
すると、上の画像のように「Exception」と表示された後に、例外の内容が表示された。「except Exception as e:」節で例外が捕捉されたということだ。実は例外クラスの多くはExceptionクラスを継承している(例外クラスの階層構造については次回に詳しく紹介する)。
Copyright© Digital Advantage Corp. All Rights Reserved.