36歳が初めてプログラムを勉強してみる(30日目)
今日もpaizaでPythonの勉強しました。
今日学んだことです。
【学んだこと】
・複数の例外処理の使い方を学んだ
・例外処理(Exception)について学んだ
次のようなことをやりました。
【やったこと】
●複数の例外処理の使い方を学んだ
前回、ZeroDivisionエラーやNameエラーを見つける例外処理をやりましたが、今回はその2つの例外処理をまとめて使う方法について学びました。
やり方は前回とほぼ同じで、「except」ブロックを追加するだけです。
【例外処理(ZeroDivision)の方法】
try:
実行するプログラム
#0で割り算した時のエラー処理
except ZeroDivisionError as 変数名:
エラーが発生した時に実行するプログラム
#未定義の変数名があった時のエラー処理
except NameError as 変数名:
エラーが発生した時に実行するプログラム
finally:
常に実行させたいプログラム
それでは実際のコードを見ていきましょう。
--コード--
try:
number = 0
answer = 10 / number
print(answer)
print(answer2)
except ZeroDivisionError as e:
print("エラー!0で割り算しました")
except NameError as e:
print("定義されていない変数があります")
finally:
print("終了しました")
--出力結果--
#number = 0 の場合
エラー!0で割り算しました
終了しました
#number = 1 の場合
10.0
定義されていない変数があります
終了しました
このコードでは、「except」にゼロで割り算した時にエラー「エラー!0で割り算しました」を出し、未定義の変数があった場合に「定義されていない変数があります」が表示されるように例外処理を書いています。
上記コードでは、「number」変数が「0」のためZeroDivisionErrorが表示されて、NameErrorは表示されません。
「number」変数が「0以外」の場合は、定義されていない「answer2」があるため、NameErrorが表示されます。
●例外処理(Exception)について学んだ
先ほどは複数の例外処理を使いましたが、例外が発生するパターン外であった場合にエラーを発見することができません。
そんな時には「Exception」を使うことでどんなパターンの例外でも発見することができます。
なぜ、Exceptionを使うことでどんな例外も発見できるかというと、ExceptionがZeroDivisonやNameのスーパークラスのためです。
【例外処理(Exception)の方法】
try:
実行するプログラム
except Exception as 変数名:
エラーが発生した時に実行するプログラム
finally:
常に実行させたいプログラム
それでは実際のコードを見ていきましょう。
--コード--
try:
number = 0
answer = 10 / number
print(answer)
except Exception as e:
print("エラーが発生しました")
finally:
print("終了しました")
--出力結果--
エラーが発生しました
終了しました
このコードでは、「except」の中にすべてのエラーを発見する「Exception」を使い、エラーを発見した場合は、「エラーが発生しました」と表示されるようにしています。
その結果、0で割り算したエラーを発見し、「エラーが発生しました」が出力されています。
本日はここまでです。
以上です。ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?