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ブロックを利用することで、より堅牢なプログラムを作成することができます。例外処理を活用して、予期しないエラーに対する耐性を持ったプログラムを開発しましょう。