【Python入門】エラーと例外処理|例外処理の基本構文を知る

エラーと例外処理|例外処理の基本構文を知る_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

Python基礎として、「例外処理」というものがあります。

プログラムのエラーに対処する上で、欠かせない処理方法です。

本記事では、そんなPython基礎となるエラーと例外処理について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonの例外処理について学びたい人
levtech-ad

エラーと例外処理

エラーと例外処理について、以下にご説明します。

エラー

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(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました