例外処理は、プログラムの実行中にエラーが発生した場合に、エラーを適切に処理するための仕組みです。
この記事では、Pythonの例外処理について、サンプルコードと一緒に解説していきます。
エラー内容を取得して表示する方法や、エラーメッセージをファイルに保存する方法などを習得していきましょう。
例外処理とは
例外処理とは、プログラムの実行中に予期しないエラーが発生した場合に、そのエラーを適切に処理するための仕組みです。
プログラムは通常、順番に処理を進めていく中でエラーが発生することがありますが、例外処理を使用することで、エラーが発生してもプログラムが停止することなく、エラーに対処することができます。
例外処理は、try-except文
を使用して実装されます。
例外処理の基本構文
例外処理は、プログラムの実行中に予期しないエラーが発生した場合に、エラーをキャッチして適切な処理を行うための仕組みです。
Pythonでは、try-except文
を使用して例外処理を行います。
例外処理の基本構文は以下の通りです。
try:
# 例外が発生する可能性のあるコード
except エラーの種類 as エラーオブジェクト:
# エラーが発生した場合の処理
まず、tryブロック内には例外が発生する可能性のあるコードを記述します。
この部分でエラーが発生すると、プログラムの実行はそこで中断され、exceptブロックに処理が移ります。
exceptブロックでは、エラーの種類を指定して、そのエラーが発生した場合に実行する処理を記述します。
また、エラーオブジェクトとしてエラーの詳細情報を取得することもできます。
以下に具体的な例を示します。
try:
num1 = int(input("割られる数を入力してください: "))
num2 = int(input("割る数を入力してください: "))
result = num1 / num2
print("結果:", result)
except ZeroDivisionError as e:
print("エラーが発生しました:", e)
この例では、ユーザーに割られる数と割る数を入力させ、その結果を計算して表示します。
しかし、もし割る数に0が入力された場合、ZeroDivisionErrorというエラーが発生します。
tryブロック内のコードが実行される際にエラーが発生すると、exceptブロック内の処理が実行されます。
この例では、ZeroDivisionErrorが発生した場合に「エラーが発生しました」というメッセージとともに、エラーオブジェクトの内容を表示しています。
このように、例外処理を使用することで、プログラムの実行中にエラーが発生しても、プログラムがクラッシュすることなく適切な処理を行うことができます。
エラー内容を取得する方法
プログラムを実行していると、エラーが発生することがあります。
エラーが発生すると、プログラムは停止してしまいますが、例外処理を使用することでエラーが発生してもプログラムを継続させることができます。
また、例外処理ではエラーの内容を取得することもできます。
try-except文でエラー内容を取得する方法
try-except文
を使用することで、エラーが発生した場合に例外処理を行うことができます。
また、except節でエラーオブジェクトを取得することができます。
エラーオブジェクトには、エラーの種類やエラーメッセージなどの情報が含まれています。
以下は、try-except文
を使用してエラー内容を取得する例です。
try:
# エラーが発生する可能性のあるコード
result = 10 / 0
except Exception as e:
# エラーオブジェクトを取得してエラー内容を表示
print("エラーが発生しました:", e.__notes__)
上記の例では、10 / 0
という計算を行っていますが、0で割るというエラーが発生します。
try節内のコードがエラーを引き起こすと、except節が実行され、エラーオブジェクトが変数e
に代入されます。
その後、エラー内容を表示するためにprint文
を使用しています。
except節でエラーオブジェクトを取得する方法
except節では、エラーオブジェクトを取得することができます。
エラーオブジェクトには、エラーの種類やエラーメッセージなどの情報が含まれています。
エラーオブジェクトは、as
キーワードを使用して変数に代入することができます。
以下は、except節でエラーオブジェクトを取得する例です。
try:
# エラーが発生する可能性のあるコード
result = 10 / 0
except ZeroDivisionError as e:
# ZeroDivisionErrorのエラーオブジェクトを取得してエラー内容を表示
print("ZeroDivisionErrorが発生しました:", e)
上記の例では、10 / 0
という計算を行っていますが、0で割るというエラーが発生します。
except節では、ZeroDivisionError
という特定のエラーのみをキャッチしています。
エラーオブジェクトは変数e
に代入され、その後、エラー内容を表示するためにprint文
を使用しています。
tracebackモジュールを使用する方法
tracebackモジュールを使用することで、エラーのトレースバック情報を取得することができます。
トレースバック情報には、エラーが発生した箇所や関数の呼び出し履歴などが含まれています。
以下は、tracebackモジュールを使用してエラーのトレースバック情報を取得する例です。
import traceback
try:
# エラーが発生する可能性のあるコード
result = 10 / 0
except Exception:
# トレースバック情報を取得して表示
traceback.print_exc()
上記の例では、10 / 0
という計算を行っていますが、0で割るというエラーが発生します。
except節では、Exception
というすべてのエラーをキャッチしています。
traceback.print_exc()
を使用することで、エラーのトレースバック情報を表示することができます。
以上が、エラー内容を取得する方法です。