見出し画像

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で割り算したエラーを発見し、「エラーが発生しました」が出力されています。

本日はここまでです。

以上です。ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?