( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】例外処理を実施する方法|try except

Pythonで例外処理を実施する

Pythonでデータの処理を実施する際、例外(エラー)が発生した場合はプログラムが中断されてしまいます

自動化で回している処理でも途中で止まってしまうと、そのあとのコードが実行されません

例外処理を実施することにより、例外発生時に適切な処理を行い、プログラムを止めることなく実行することができます

Pythonのtry/exceptの処理イメージ

例外処理のtry except

Pythonで例外処理を実施するためにはtryexceptを組み合わせて実行します

イメージとしてはtryは条件適応を「やってみる」を表し、exceptは「ダメだったとき」を表します

Pythonのtry/exceptのコード

例外(エラー)において頻出する「ゼロで割り算」をするときの処理を試してみましょう

エラーが発生するコード

defを利用して割り算を実施する関数を作成します

まずはエラーが発生してしまう、単純なコードを記述します

def func(x,y):
  print(x/y)

この関数の(x,y)に対して、「1,2」「2,0」「3,5」を代入して割り算を実施します

func(1,2)
func(2,0)
func(3,5)
ZeroDivisionErrorが発生するイメージ

1番目の「1÷2=0.5」の計算式は実行されましたが、2番目でエラーが発生しました

ZeroDivisionErrorは割り算を実施する際、「除数がゼロ」の場合に出るエラーです

そして途中でプログラムが止まってしまったため、3番目の「3÷5」が実行されていません

try exceptを実行したコード

そこで前述した方法で例外処理を実施することで、3つの割り算を全て算出してみます

tryに対して「x÷y」の例外が発生する処理を記述します

exceptに対しては「x÷y」でエラーが発生した場合の、エラー文言を記述します

def func(x,y):
  try:
    print(x/y)
  except:
    print('ゼロで割ろうとしています')

func(1,2)
func(2,0)
func(3,5)
例外クラスの実施

無事、3つのコードが実行されました

エラーが出てしまう「2÷0」の場合には指定した文言が表示されました

関数の作り方に関してはこちらの記事をご覧ください

【Python】関数で独自の計算式を作る方法とは?|def

例外ごとに異なる分岐

例外処理は、例外(エラー)の種類に応じて出し分けることができます

exceptの後に続けて例外の種類(クラス)を記述することで、その場合の処理を分岐させましょう

Pythonのtry/exceptのコード

例外クラス(エラー内容)に関しては、前述したZeroDivisionErrorの「ゼロで割り算しようとした場合」のエラーや

TypeErrorの「データ型が異なっていた場合」のエラーなど様々存在しています

「2÷0」のゼロでの割り算と、「データなし」の文字列での割り算を関数に適応させてみます

def func(x,y):
  try:
    print(x/y)
  except ZeroDivisionError:
    print('ゼロで割ろうとしています')
  except TypeError:
    print('数値型ではありません')

func(1,2)
func(2,0)
func('データなし',5)
Pythonのtry/exceptの例外分岐コード

複数の例外の同じ処理を実施

複数の例外(エラー)に対して、全く同じ処理を実施したい場合は、exceptに続けて複数の例外クラス(ZeroDivisionError,TypeError)を記述しましょう

def func(x,y):
  try:
    print(x/y)
  except (ZeroDivisionError,TypeError):
    print('エラーが出ています')

func(1,2)
func(2,0)
func('データなし',5)
Pythonのtry/exceptの例外分岐コード
MEMO

exceptに続けて「どの例外も指定しない」ことで、全ての例外に対して同じ処理を実施することができます

まとめ

今回は例外処理を実施することにより、例外発生時に適切な処理を行い、プログラムを止めることなく実行する方法をご紹介してきました

tryexceptの簡単なコードで出し分けができるので、ぜひ試してみてください

【Python】関数で独自の計算式を作る方法とは?|def
お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。