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 | ファイルが存在しない場合に発生 |
ZeroDivisionError | 0で割り算をした場合に発生 |
例外処理を行う際には、どの種類の例外が発生する可能性があるかを考え、それに対応するexcept文を用意する必要があります。
例外処理の注意点
例外処理を行う際には、以下のような点に注意する必要があります。
- try-except文は、必要最小限に使用するようにする。
- どの種類の例外が発生するかを明確にし、それに対応するexcept文を用意する。
- ユーザーにエラーメッセージを表示する場合には、わかりやすく具体的なメッセージを出力する。
- ログ出力を行い、エラーの発生原因や発生時間などを記録する。
- エラーが発生した場合には、必要に応じてプログラムを再起動するなどの処理を行う。
【まとめ】例外発生時の処理も考慮しよう!
Pythonにおける例外処理は、プログラムが予期せぬエラーに遭遇した場合に、プログラムが正常に終了しないようにするために重要な機能です。
例外処理を行うことで、プログラムが予期せぬエラーに遭遇した場合にも、ユーザーに適切なエラーメッセージを表示することができます。
他にも、ログ出力などの処理を行うことで、エラーの発生原因を特定することができます。
最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。
最後までお読みいただきありがとうございました。