【Python】tryを使用した例外処理の方法

Pythonの例外処理は、プログラムが予期しないエラーで停止するのを防ぎ、適切なエラーメッセージを表示したり、代替の処理を行うことができる強力なツールです。この記事では、tryを使った例外処理の方法について詳しく説明します。

try-except構文の基本

まず、例外処理の基本的な構文を見てみましょう。tryブロックにはエラーが発生する可能性のあるコードを記述し、exceptブロックにはエラーが発生した際に実行するコードを記述します。

try:
    # エラーが発生する可能性のある処理
except エラーの種類:
    # エラーが発生した場合の処理

具体例 ゼロ除算の処理

たとえば、ゼロでの除算はZeroDivisionErrorを引き起こします。このエラーをキャッチして、プログラムがクラッシュしないようにする方法を紹介します。

try:
    result = 10 / 0
except ZeroDivisionError:
    print("ゼロで除算することはできません")

このコードは、ゼロで除算しようとしたときにエラーをキャッチし、カスタムメッセージを表示します。

複数の例外を処理する

複数の異なるエラーを処理する場合、それぞれのエラーに対して別々のexceptブロックを使用できます。

try:
    value = int(input("数値を入力してください: "))
    result = 10 / value
except ValueError:
    print("無効な入力です。数値を入力してください。")
except ZeroDivisionError:
    print("ゼロで除算することはできません。")

この例では、ユーザーが無効な入力をした場合と、ゼロで除算しようとした場合の両方のエラーを処理しています。

elseブロックで成功時の処理を追加

tryブロック内のコードが成功した場合にのみ実行されるelseブロックを使うこともできます。

try:
    value = int(input("数値を入力してください: "))
    result = 10 / value
except (ValueError, ZeroDivisionError) as e:
    print(f"エラーが発生しました: {e}")
else:
    print(f"結果は {result} です")

この例では、エラーが発生しなかった場合にのみ計算結果が表示されます。

finallyブロックで確実に後処理を行う

finallyブロックは、例外が発生したかどうかにかかわらず、必ず実行されるコードを記述するのに使用します。たとえば、ファイル操作の後にファイルを閉じる処理などに利用します。

try:
    file = open('example.txt', 'r')
    content = file.read()
except FileNotFoundError:
    print("ファイルが見つかりません")
finally:
    file.close()

この例では、ファイルが存在しない場合にエラーメッセージを表示し、最後に必ずファイルを閉じます。

まとめ

Pythonのtry-except構文を使えば、プログラムのエラー処理を柔軟に行うことができます。複数のエラーに対応したり、成功時の処理を追加したり、後処理を確実に実行するためのfinallyブロックを利用することで、より堅牢なプログラムを作成することができます。例外処理を活用して、予期しないエラーに対する耐性を持ったプログラムを開発しましょう。