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ブロックを活用することで、より洗練されたエラーハンドリングを実現できます。
