例外トレースバックをキャッチして処理する方法
プログラム中で予期しないエラーが発生した場合、プログラムを停止させずにエラー情報をログに記録するか、エラーを無視してプログラムの実行を続けることが可能です。以下にPythonで例外トレースバックをキャッチし、処理する方法を示すサンプルコードを3つ紹介します。
サンプルコード1: try-exceptブロックを使用
最も基本的な例外処理方法です。tryブロック内で実行されるコードで例外が発生すると、exceptブロックが実行されます。
try: # 0で割り算を試みる result = 10 / 0 except ZeroDivisionError as e: # 例外が発生した場合に実行されるブロック print("エラーが発生しました:", e)
サンプルコード2: 例外の情報をログに記録
loggingライブラリを使用して、例外の情報をログファイルに記録することができます。これにより、プログラムのデバッグが容易になります。
import logging logging.basicConfig(filename='example.log', level=logging.ERROR) try: # 存在しないファイルを開く with open('nonexistent_file.txt') as file: read_data = file.read() except FileNotFoundError as e: logging.error("ファイルが見つかりませんでした: %s", e)
サンプルコード3: 例外を再発生させずに処理
例外をキャッチした後、特定の処理を行いつつプログラムの実行を続けることができます。これは、例外の影響を最小限に抑える場合に有効です。
def safe_division(x, y): try: result = x / y except ZeroDivisionError: print("ゼロ除算が発生しました。") return None # エラーを示すためにNoneを返す else: return result # 関数のテスト print(safe_division(10, 2)) # 5を出力 print(safe_division(10, 0)) # エラーメッセージを出力し、Noneを返す
これらのサンプルコードを参考に、Pythonの例外処理を適切に行い、プログラムの安定性とメンテナンス性を高めることができます。例外トレースバックを理解し、適切に処理することは、エラーからの回復だけでなく、将来的なエラーの予防にも繋がります。