Python初心者が例外処理をやってみます。
事前に例外処理を行っておくことで、エラーが発生しても終了しないで処理を継続することができる。
■環境
Google Colaboratory
■基本である「try, except」文を使ってみる
例外処理の基本である「try, except」文を実際に使ってみます。
例外処理のサンプルが掲載されていましたので、こちらを使わせていただきます。
■コード
a = 500/0 print("終了します。")
本来、上記のコードを記述し実行すると、
—————————————————————————
ZeroDivisionError Traceback (most recent call last)
<ipython-input-9-622a6b35ec7a> in <module>()
—-> 1 a = 500/0
2 print(“終了します。”)ZeroDivisionError: division by zero
500という数値を0で割るので、上記のZeroDivisionErrorというエラーが起こり、メッセージが表示されます。
一方、「try, except」文を使うことで、
■コード
try: a = 500/0 except Exception: print("エラーが発生しました") else: print("終了しました")
「a = 500/0」という数値を0で割ることでエラーが起きそうな箇所を「try:」内に入れることで、「try:」内でエラーが発生した場合、「except Exception:」の処理を行い、「エラーが発生しました」と出力することできる。
実際に実行してみると、
「エラーが発生しました」と出力されることを確認しました。
なお、ゼロ除算(0で除す割り算)の場合に、例外処理を行う場合は、「except ZeroDivisionError:」という形もできる。逆にどんな例外処理もとらえるのが「except Exception:」である。
■終了時に常に行う「finally」節を使ってみる
今回「try, except」文を使ってみたが、処理が終了する際に常に行う処理を実行できる「finally」節というのがあるので使ってみる。
■コード
try: a = 500/0 except Exception: print("エラーが発生しました") else: print("終了しました") finally: print("ここは必ず通ります")
「a = 500/0」という数値を0で割ることでエラーが起きますので、「except Exception:」の処理が実行されますが、さらに「finally:」を追加することで、この処理は終了時に必ず処理が実行されます。
実行してみると、「except Exception:」の処理が実行され、「エラーが発生しました」と出力されましたが、「finally:」の処理も実行され、「ここは必ず通ります」と出力されることが確認できました。
コメント