try | 例外処理 | Python予約語 徹底解説 使い方と注意点

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

Pythonの予約語「try」の解説

tryとは何か

tryは、Pythonにおける例外処理のための予約語です。tryブロックは、プログラム内で例外(エラー)が発生する可能性のあるコードを記述し、発生した例外を捕捉し、適切に処理するために使用されます。これにより、プログラムが予期しないエラーで停止するのを防ぎ、適切なエラーメッセージを表示したり、再試行やログ記録などを行うことができます。

try文の基本的な構成

基本的なtry文の構成は次の通りです:

  • tryブロック: 例外が発生する可能性があるコードを含む。
  • exceptブロック: 例外が発生した場合にその例外を処理するためのコード。
  • elseブロック: 例外が発生しなかった場合に実行されるコード(オプション)。
  • finallyブロック: 例外が発生したかどうかに関係なく、最後に必ず実行されるコード(オプション)。

try文の基本例

try:
    number = int(input("数字を入力してください: "))
except ValueError:
    print("入力された値は数字ではありません。")
else:
    print(f"入力された数字は {number} です。")
finally:
    print("入力処理が完了しました。")

このコードでは、tryブロック内で整数の入力を要求し、ValueErrorが発生した場合にはexceptブロックでエラーメッセージを表示します。正常に入力が行われれば、elseブロックが実行され、finallyブロックは例外の有無に関わらず実行されます。

複数の例外を処理する

try文では、複数の例外をexceptブロックで処理することができます。異なる種類の例外ごとに異なる処理を行うことが可能です。

try:
    x = int(input("1番目の数: "))
    y = int(input("2番目の数: "))
    result = x / y
except ValueError:
    print("無効な入力です。整数を入力してください。")
except ZeroDivisionError:
    print("ゼロで割ることはできません。")
else:
    print(f"結果: {result}")

この例では、ValueErrorが発生した場合とZeroDivisionErrorが発生した場合に異なるメッセージを表示します。ユーザーが正しい数値を入力し、0でない場合には、elseブロックが実行され、割り算の結果が表示されます。

例外オブジェクトをキャッチする

例外を処理する際、exceptブロックで例外オブジェクトをキャッチし、その内容を確認することもできます。例外オブジェクトはエラーに関する詳細な情報を含んでいます。

try:
    number = int(input("数字を入力してください: "))
except ValueError as e:
    print(f"エラーが発生しました: {e}")

この例では、ValueErrorが発生した場合に、その詳細を例外オブジェクトeに格納し、エラーメッセージを表示します。

finallyブロックの使用

finallyブロックは、例外が発生したかどうかに関係なく、必ず実行されるコードを記述するために使用します。リソースの解放やクリーンアップ処理などに便利です。

try:
    file = open("data.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("ファイルが見つかりません。")
finally:
    file.close()
    print("ファイルが閉じられました。")

この例では、tryブロックでファイルを開き、finallyブロックでファイルが必ず閉じられるようになっています。ファイルが存在しない場合にはFileNotFoundErrorが処理されますが、finallyブロックは必ず実行されます。

try文の動作まとめ

以下に、try文の動作をまとめた表を示します。

構成要素 説明
tryブロック 例外が発生する可能性のあるコードを記述
exceptブロック 発生した例外をキャッチし、処理するコード
elseブロック 例外が発生しなかった場合に実行されるコード
finallyブロック 例外の発生有無にかかわらず、必ず実行されるコード

まとめと注意点

  • tryは、エラーが発生する可能性のあるコードの実行を安全に行うために使用します。
  • 複数のexceptブロックを使って、さまざまな種類の例外に対処できます。
  • 例外が発生しなかった場合に実行する処理はelseブロックに記述します。
  • finallyブロックは、例外が発生してもしなくても必ず実行されるため、クリーンアップ処理に最適です。
  • 特定の例外処理が必要ない場合でも、tryブロックを使うことでプログラムが予期せず停止することを防ぐことができます。