Pythonのtry…except
文は、プログラムのエラーハンドリング(例外処理)を行うための構文です。これにより、プログラムの実行中に発生するエラー(例外)をキャッチし、適切に対処することができます。
※初心者向けの13冊のPython独学書
1. 基本的な構文
try…except
文の基本的な構文は以下の通りです:
try: # 例外が発生する可能性のあるコード x = 1 / 0 except ZeroDivisionError: # 例外が発生した場合の処理 print("ゼロによる除算エラーが発生しました")
上記の例では、ゼロによる除算を試みてZeroDivisionError
が発生しますが、except
ブロック内のコードが実行されるため、プログラムはクラッシュせずにエラーメッセージが表示されます。
2. 複数の例外処理
複数の種類の例外を処理する場合は、複数のexcept
ブロックを使用します。
try: x = int(input("数字を入力してください: ")) y = 1 / x except ValueError: print("無効な入力です。数字を入力してください。") except ZeroDivisionError: print("ゼロによる除算エラーが発生しました。")
3. 全ての例外を捕捉
特定の例外を指定せずに、全ての例外を捕捉することもできます。ただし、具体的な例外を指定する方が望ましいです。
try: x = 1 / 0 except Exception as e: print(f"予期しないエラーが発生しました: {e}")
4. elseブロック
例外が発生しなかった場合に実行されるelseブロックを使用することもできます。
try: x = 10 / 2 except ZeroDivisionError: print("ゼロによる除算エラーが発生しました。") else: print("計算が成功しました。結果は:", x)
5. finally
ブロック
finally
ブロックは、例外の有無にかかわらず必ず実行されるコードを記述するために使用します。リソースのクリーンアップなどに役立ちます。
try: f = open('sample.txt', 'r') content = f.read() except FileNotFoundError: print("ファイルが見つかりません") finally: if 'f' in locals(): f.close() print("ファイルの処理が終了しました。")
6. 例: ファイル操作の例外処理
ファイルを開いて読み取る際の例外処理の例を示します。
try: with open('example.txt', 'r') as file: content = file.read() except FileNotFoundError: print("ファイルが見つかりません") except IOError: print("ファイルの読み取り中にエラーが発生しました") else: print("ファイルの内容:", content) finally: print("ファイル処理が終了しました。")
まとめ
try…except
文を使用することで、Pythonプログラムでのエラー発生時に適切な対処が可能となります。特定の例外をキャッチすることで、プログラムの信頼性を高め、予期しないクラッシュを防ぐことができます。else
やfinally
ブロックを活用することで、より洗練されたエラーハンドリングを実現できます。