【Python】例外処理を解説:try-except文

Pythonにおける例外処理は、プログラムが想定しない状況やエラーが発生した際に、プログラムが予期せぬ終了をせずに、エラーの原因を特定して適切に処理するための仕組みです。

例外処理を行うことで、プログラムの可読性や信頼性を高めることができます。

本記事では、Pythonにおける例外処理の基礎的な考え方や実装方法、また例外処理におけるベストプラクティスについて解説します。

他にも【Python入門】if文の使い方【Python入門】for文の使い方で「if」や「for」について分かりやすく解説しているので、お時間がある方はご確認ください。

また、Pythonをもっと詳しく勉強したいという方は、【超厳選】20代におすすめのプログラミングスクール3選!を参考にしてください。

他にも無料でプログラミングスクールを受講したいという方は、【完全無料】0円で学べるプログラミングスクールを紹介【大学生向け】を参考にしてください。

例外処理の概要

Pythonの例外処理は、try-except文で実装されます。

tryブロックには、例外が発生する可能性のあるコードが含まれます。

exceptブロックには、tryブロック内で発生した例外を処理するためのコードが含まれます。

tryブロック内で例外が発生すると、その例外が最初に一致するexceptブロックにジャンプし、exceptブロック内のコードが実行されます。

以下は、例外処理の基本的な例です。

try:
    # 例外が発生する可能性のあるコード
except ExceptionType:
    # 例外が発生した場合に実行されるコード
else:
    # 例外が発生しなかった場合に実行されるコード
finally:
    # 例外の有無にかかわらず実行されるコード

ここで、ExceptionTypeは、例外の種類を指定するためのクラス名です。

例外が発生すると、Pythonはtryブロックからexceptブロックにジャンプし、ExceptionTypeに一致する最初のexceptブロックのコードが実行されます。

elseブロックには、例外が発生しなかった場合に実行されるコードを指定できます。

finallyブロックには、例外の有無にかかわらず実行されるコードを指定できます。

他にも、except文を複数したり、例外オブジェクトを受け取る変数を指定することができます

try:
    # 例外が発生する可能性のあるコード
except ExceptionType1:
    # 例外が ExceptionType1 の場合に実行されるコード
except ExceptionType2:
    # 例外が ExceptionType2 の場合に実行されるコード
try:
    # 例外が発生する可能性のあるコード
except ExceptionType as e:
    # 例外が発生した場合に実行されるコード
    print(e)

例外の発生と処理

以下のようなプログラムを考えてみましょう。

このプログラムは、キーボードから整数を入力して、その整数の二乗を計算するものです。

num = input("整数を入力してください: ")
result = int(num) ** 2
print(result)

このプログラムにはバグがあります。

たとえば、キーボードから文字列を入力した場合には、int()関数がエラーを発生させてしまいます。

このような場合に、例外処理を行うことで、プログラムが正常に終了するようにすることができます。

以下のようにtry-except文を用いることで、エラーをキャッチして処理することができます。

try:
    num = input("整数を入力してください: ")
    result = int(num) ** 2
    print(result)
except ValueError:
    print("入力された値が正しい形式ではありません")

このプログラムでは、try文のブロック内でエラーが発生する可能性のある処理を記述しています。

except文のブロック内で、エラーの種類に応じた処理を行っています。

例コード2では、ValueErrorというエラーが発生した場合に、"入力された値が正しい形式ではありません"というメッセージを出力するようになっています。

例外が発生した場合には、try文のブロック内の処理が中断され、プログラムは自動的にexcept文にジャンプします。

except文のブロック内の処理が実行された後、プログラムは正常に終了します。

例外が発生しなかった場合には、try文のブロック内の処理が完了した後、プログラムはそのまま継続して実行されます。

例外処理を行う際には、except文のブロック内で適切な処理を行う必要があります。

例外の種類

Pythonには、様々な種類の例外が定義されています。以下に、よく使われる例外の種類をいくつか紹介します。

例外説明
ValueError引数の型が適切でない場合に発生
TypeErrorオブジェクトの型が適切でない場合に発生
IndexErrorリストや配列などの添字が範囲外である場合に発生
KeyError辞書などのキーが存在しない場合に発生
FileNotFoundErrorファイルが存在しない場合に発生
ZeroDivisionError0で割り算をした場合に発生

例外処理を行う際には、どの種類の例外が発生する可能性があるかを考え、それに対応するexcept文を用意する必要があります。

例外処理の注意点

例外処理を行う際には、以下のような点に注意する必要があります。

  • try-except文は、必要最小限に使用するようにする。
  • どの種類の例外が発生するかを明確にし、それに対応するexcept文を用意する。
  • ユーザーにエラーメッセージを表示する場合には、わかりやすく具体的なメッセージを出力する。
  • ログ出力を行い、エラーの発生原因や発生時間などを記録する。
  • エラーが発生した場合には、必要に応じてプログラムを再起動するなどの処理を行う。

【まとめ】例外発生時の処理も考慮しよう!

Pythonにおける例外処理は、プログラムが予期せぬエラーに遭遇した場合に、プログラムが正常に終了しないようにするために重要な機能です。

例外処理を行うことで、プログラムが予期せぬエラーに遭遇した場合にも、ユーザーに適切なエラーメッセージを表示することができます。

他にも、ログ出力などの処理を行うことで、エラーの発生原因を特定することができます。

最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。