【Python】㉓例外処理
始めに
前回までは、オブジェクト指向プログラミングについて学んでいきました。
今回は、例外処理について学んでいきましょう。
前回の記事はこちら
例外とは
例外はプログラムの実行中に起こるエラーです。
例外が発生すると、プログラムはエラーメッセージを表示して終了してしまいます。
ただし、例外処理を記述しておけば、エラー発生後もプログラムの実行を継続をする事ができます。
例外処理の書き方
例外処理は以下のようなtry文で以下のように書きます。
----------
try :
処理A
except 例外名 :
処理B
----------
上記では、最初にtry節の処理Aを行います。
処理Aの実行中にエラーが発生した場合、処理Aの実行を中断し、エラー内容に合わせた例外(例外インスタンス)を発信します。
exceptに続けて、対処したい例外名(例外クラス名)を記述します。
もし発生した例外がexcept節の例外名に一致していたら、処理Bを実行します。
except節は複数並べることができます。
発生した例外がどのexcept節の例外名とも一致しない場合には、エラーメッセージを表示してプログラムは終了します。
例➀例外処理
例外処理を確認するために、リストに格納されたデータの合計を求めることとします。
このリストの中に、'1','2'だけの数値に変換できる文字列だけで無く、'three'という数値に変換できない文字列が混ざっています。
<try1.py>
上記のプログラムを実行すると、以下のような結果が得られます。
ValueError: invelid literal for int() with base 10: 'three'
これは、プログラムの4行目でint関数を用いて、'three'という文字列を数値に変換しようとしたことが例外の原因です。
そのため、以下のように書き換えます。
<try2.py>
except節には何かしらの文を書く必要があるため、pass文を使用します。
このプログラムを実行すると、数値に変換する事ができない'three'以外の1,2,4を合計した7を返します。
else節とfinally節
try節ではexcept節だけではなく、else節やfinally節も書くことが可能です。
else節やfinally節は省略が可能なので、必要なときだけ使うことができ、以下のように表わします。
----------
try :
処理A
except 例外名 :
処理B
else :
処理C
finally :
処理D
----------
例②else節とfinally節
else節やfinally節の動作を確認するため、以下のプログラムを実行します。
上記のプログラムでは、例外が発生しないため、例外は発生しません。
そのため、try、else、finallyの順に実行されます。
最後に
今回は、例外処理について学んでいきました。
少しずつプログラミングを進めていると、エラーについても詳しくなりますよね。
エラーと仲良くなりつつお勉強を頑張りたいと思います。