INDEX
tryの概要
例外処理(エラーハンドリング) Python予約語 | ||
try 概要 わかりやすく説明 |
||
|
try-exceptの基本的な使い方
以下の例では、ゼロ除算エラーを try-except
で処理しています。
# try-except を使ったエラーハンドリング
try:
result = 10 / 0 # ゼロ除算エラー発生
except ZeroDivisionError:
print("エラー: 0で割ることはできません")
10 / 0
でZeroDivisionError
が発生。except
によりエラーをキャッチし、プログラムがクラッシュせずに続行可能。
特定の例外をキャッチする
except
に特定の例外を指定することで、適切なエラーメッセージを表示できます。
# 異なる種類の例外を処理
try:
x = int("abc") # 数値変換エラー
except ValueError:
print("エラー: 数値に変換できません")
int("abc")
でValueError
が発生。except ValueError
によりエラーメッセージを表示。
複数の例外を処理する
異なる種類のエラーを一つの except
ブロックで処理できます。
# 複数の例外を処理
try:
num = int(input("数値を入力: "))
result = 10 / num
except (ValueError, ZeroDivisionError) as e:
print(f"エラー発生: {e}")
- ユーザーが数値以外を入力すると
ValueError
。 - 0 を入力すると
ZeroDivisionError
。 - どちらのエラーも
except
でキャッチし、メッセージを表示。
すべての例外をキャッチする
予期しないエラーをキャッチする場合、except Exception
を使用します。
# すべての例外をキャッチ
try:
value = 10 / 0
except Exception as e:
print(f"エラー発生: {e}")
- 例外の種類を限定せず、すべてのエラーをキャッチ可能。
- ただし、特定のエラーだけを処理したい場合は、明示的に種類を指定すべき。
finallyで必ず実行される処理を記述
finally
を使うと、エラーの有無に関係なく最後に必ず実行される処理を書けます。
# finally を使った後処理
try:
file = open("sample.txt", "r")
content = file.read()
except FileNotFoundError:
print("ファイルが見つかりません")
finally:
print("処理終了")
- ファイルが見つからない場合は
except
によりエラーメッセージを表示。 finally
により、エラーの有無にかかわらず「処理終了」と表示される。
elseでエラーがなかった場合の処理
else
を使うと、エラーが発生しなかった場合のみ実行されるコードを記述できます。
# else を使ったエラーハンドリング
try:
num = int(input("数値を入力: "))
result = 10 / num
except ZeroDivisionError:
print("エラー: 0で割ることはできません")
except ValueError:
print("エラー: 数値を入力してください")
else:
print(f"計算結果: {result}")
- エラーが発生しない場合のみ、
else
の処理が実行される。 - エラー発生時は
except
のブロックが実行されるため、else
は実行されない。
tryの注意点
- 特定の例外をキャッチする: すべてのエラーを
except Exception
でキャッチするとデバッグが難しくなる。 - finally を使うとリソースの解放を確実に実行できる: ファイルやデータベースの接続を適切に閉じる。
- 例外メッセージを適切に表示する: ユーザーが原因を理解しやすいメッセージを出す。
tryのよくある質問
- Q: except でエラーメッセージを表示せずに無視してもいい?
- A: 可能だが、エラーが発生したことをログに記録するのが推奨される。
- Q: finally は必ず実行される?
- A: はい。エラーが発生しても
finally
ブロックは必ず実行される。 - Q: else はなくてもいい?
- A: なくても動作するが、エラーがないときの処理を分けるのに便利。
まとめ
try
は、プログラムの実行中に発生する例外を安全に処理するためのキーワードです。
- エラー発生時にプログラムのクラッシュを防げる。
except
で適切なエラーメッセージを表示できる。finally
で後処理を確実に実行可能。
適切に try
を活用し、安全なプログラムを作成しましょう。