Python基礎として、「例外処理」というものがあります。
プログラムのエラーに対処する上で、欠かせない処理方法です。
本記事では、そんなPython基礎となるエラーと例外処理について、詳しくご説明します。
エラーと例外処理
エラーと例外処理について、以下にご説明します。
エラー
Pythonにおいて、プログラムを実行する際に発生する問題のことをエラーと呼びます。
エラーには数多くの種類があります。
たとえば、プログラムを実行する前段階におけるエラーを構文エラーと言います。
構文エラーは、インデントが崩れていたり、カンマやクォーテーションマークが抜けていたりすることによるエラーです。
一方で、プログラム実行時に、ロジックの間違いなどで生じるエラーもあります。
Pythonでは、このエラーのことを例外と呼んでいます。
例外が発生するとプログラムは中断されていまうため、例外処理が必要になります。
例外処理
例外処理とは、例外が発生した場合にどのように対処するかを記述することです。
説明用のプログラムとして、以下をご紹介します。
#input
i = input("input number:")
N = int(i)
cal = 100 / N
print(cal)
入力した数値を使用して除算するプログラムです。
たとえば、10を入力すると、以下の結果となります。
#input
input number:10
#output
10.0
ところが、0を入力すると、以下のエラーが発生します。
#input
input number:0
#output
ZeroDivisionError: division by zero
このエラーに対処するため、例外処理します。
例外処理には、try文とexcept節を使用します。
try文の直下には、例外を発生し得るコードを記述します。
except節では、例外クラスを入れることで、補足する例外を指定します。
except節の直下には、指定した例外に対処するコードを記述します。
以下に具体例をご紹介します。
#input
try:
i = input("input number:")
N = int(i)
cal = 100 / N
print(cal)
except ZeroDivisionError:
print("ZeroDivisionErrorです!")
input number:0
#output
ZeroDivisionErrorです!
0を入力した場合、例外処理「print(“ZeroDivisionErrorです!”)」が実行されていることが分かると思います。
上記例では0を入力した場合、再計算することなくプログラムが終了してしまいます。
再計算されるように、else節とfinally節を使用して記述した例を以下に載せます。
else節の直下には、例外が発生しなかった場合に実行するコードを記述します。
finally節の直下には、例外有無に関わらず最終的に実行するコードを記述します。
#input
try:
i = input("input number:")
N = int(i)
cal = 100 / N
except ZeroDivisionError:
print("ZeroDivisionErrorです!")
j = input("input number except 0:")
M = int(j)
cal = 100 / M
print("100/",M,"=",cal,"です。例外ありでした。")
else:
print("100/",N,"=",cal,"です。例外なしでした。")
finally:
print("finish!")
まずは例外なしの場合で入力してみると、以下のように出力されます。
input number:20
#output
100/ 20 = 5.0 です。例外なしでした。
finish!
例外が発生しなかった場合、else節のコードが実行されました。
最終的に、finally節のコードが実行されていることが分かると思います。
次に、例外ありの場合で入力してみると、以下が出力されます。
input number:0
#output
ZeroDivisionErrorです!
input number:50
#output
100/ 50 = 2.0 です。例外ありでした。
finish!
例外が発生した場合、except節のコードが実行されました。
例外ありの場合でも、finally節のコードが実行されていることが分かると思います。
except節は複数記述できますので、想定される例外クラスの数に応じた例外処理を設定できます。
まとめ
この記事では、Python基礎となるエラーと例外処理について、ご説明しました。
本記事を参考に、ぜひ例外処理を設定してみましょう。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!