Python

【Python】例外処理の使い方

この記事では、Pythonの例外処理の使い方を解説します。

例外処理とは、プログラム実行中になんらかのエラーが発生した際、あらかじめ定義しておいた処理を行うことを言います。

例外処理を定義することで、定義内でエラーが発生してもプログラムが強制終了せず、エラー内容を受け取れ、なんらかの処理を実行させることができます。

それでは、例外処理の使い方を見ていきましょう!

例外処理の使い方

例外処理は、以下のように記述します。

try:
    # 処理
except:
    # tryブロック内でエラーが発生した場合に処理

オプションとしてfinallyを定義できます。finallyはエラーが発生してもしなくても例外処理の最後に処理されます。

try:
    # 処理
except:
    # tryブロック内でエラーが発生した場合に処理
finally:
    # 例外処理の最後に必ず処理

サンプル:

以下のコードは、tryブロック内であえてエラーを発生させ、挙動を確認してみます。

value = 'one'

try:
    value = int(value)
except:
    print('valueはintに変換できません')

実行結果

valueはintに変換できません

発生したエラーの型で処理を変更

except [エラーの型]:を使うことで、エラーごとに処理を分けることができます。

value = 'one'

try:
    value = int(value)
except ValueError:             # ValueErrorを指定
    print('ValueErrorが発生')
except:
    print('その他エラーが発生')

実行結果

ValueErrorが発生

エラーメッセージを受け取る

以下のようにasを使うことで、エラーの詳細を受け取ることができます。

num = 'one'

try:
    int(num)
except ValueError as e:
    print(e)

実行結果

invalid literal for int() with base 10: 'one'

エラーを投げる

raise文を使うことで、エラーを自発的に発生させることができます。

以下のコードでは、func関数を呼び出す際に引数に0を渡すとraies文が処理されてエラーが発生します。

def func(num: int):
    if num == 0:
        raise


try:
    func(0)
except:
    print('func関数でエラー発生')

実行結果

func関数でエラー発生

エラーの型とメッセージを指定する:

raise文にエラーの型を指定することで発生させるエラーの型を指定できます。また、引数に文字列を指定することでエラーメッセージを指定できます。

def func(num: int):
    if num == 0:
        raise ValueError('エラーが発生!')


try:
    func(0)
except ValueError as e:
    print(e)

実行結果

エラーが発生!

まとめ

この記事では、Pythonの例外処理について解説しました。

今回のおさらい

もし、理解できない箇所があったら記事を読み返してみましょう!

def func():
    raise ValueError('ValueErrorが発生しました!')

try:
    func()
except ValueError as e:
    print(e)
except:
    print('その他のエラー')
finally:
    print('例外処理終了!')

実行結果

ValueErrorが発生しました!
例外処理終了!

それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ

Link8. エラーと例外 — Python 3.9.1 ドキュメント

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』