INDEX
exceptの概要
例外処理のエラーハンドリング Python予約語 | ||
except 概要 わかりやすく説明 |
||
|
exceptの基本的な使い方
以下の例では、ゼロで割るとエラーが発生するため、それを except
でキャッチして処理しています。
# 例外処理の基本
try:
result = 10 / 0 # ゼロ除算エラー発生
except ZeroDivisionError:
print("ゼロで割ることはできません")
try
内の10 / 0
でZeroDivisionError
が発生します。except ZeroDivisionError
でエラーをキャッチし、「ゼロで割ることはできません」と表示します。
exceptで複数の例外をキャッチ
複数の異なる例外を処理する場合、それぞれの except
ブロックを用意できます。
# 複数の例外を処理
try:
num = int(input("数字を入力してください: "))
result = 10 / num
except ZeroDivisionError:
print("ゼロでは割れません")
except ValueError:
print("数字を入力してください")
- ゼロを入力すると
ZeroDivisionError
をキャッチし、「ゼロでは割れません」と表示。 - 文字を入力すると
ValueError
をキャッチし、「数字を入力してください」と表示。
exceptで複数の例外をまとめてキャッチ
同じ処理を行いたい例外は、タプルでまとめて指定できます。
# まとめて例外をキャッチ
try:
num = int(input("数字を入力してください: "))
result = 10 / num
except (ZeroDivisionError, ValueError):
print("無効な入力です")
- ゼロを入力すると
ZeroDivisionError
、文字を入力するとValueError
をキャッチします。 - どちらのエラーでも「無効な入力です」と表示します。
except asを使って例外の詳細を取得
as
を使うと、発生した例外の詳細な情報を取得できます。
# 例外の詳細を表示
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"エラーが発生しました: {e}")
as e
で発生した例外の情報をe
に格納。- エラーメッセージを表示できます(例:「エラーが発生しました: division by zero」)。
exceptの実践的な使用例
ファイルを開く際に、存在しないファイルへの対応を行う例です。
# ファイルを開く処理
try:
with open("nonexistent.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("ファイルが見つかりません")
- ファイルが存在しない場合、
FileNotFoundError
をキャッチ。 - エラーを防ぎ、「ファイルが見つかりません」と表示。
exceptの注意点
- except は必ず try とセットで使う:
except
単独では使用できません。 - 汎用的な例外キャッチに注意:
except Exception:
はすべての例外をキャッチしますが、バグの発見を妨げる可能性があるため注意が必要です。 - エラーメッセージを明示する:
as
を使ってエラー内容を出力すると、デバッグが容易になります。
exceptのよくある質問
- Q: except は try と必ずセットで使う必要がありますか?
- A: はい。単独では使用できず、
try
ブロックと組み合わせる必要があります。 - Q: except の中で pass を使ってもよいですか?
- A: はい。ただし、例外を無視することになるため、注意が必要です。
- Q: すべての例外をキャッチする方法は?
- A:
except Exception:
を使うと、すべての例外をキャッチできます。ただし、適切な例外処理を行うことが推奨されます。
まとめ
except
は、プログラムの異常終了を防ぎ、エラー時の適切な処理を行うために使用されます。
try
ブロック内で発生した例外をexcept
でキャッチできます。- 特定の例外を指定して処理を分岐できます。
as
を使うと、例外の詳細な情報を取得できます。
適切に except
を活用し、エラーを適切に処理できるプログラムを作成しましょう。