Pythonを使っていて、思わぬエラーでプログラムが止まってしまったことはありませんか?
そんなときに役立つのが 「例外処理(Exception Handling)」 です!
今回は、初心者向けに Pythonの例外の仕組みをハンズオン形式で解説 します✨
実際にコードを書きながら、一緒に学んでいきましょう!💡
🎯 学べること
✅ Pythonの 例外とは何か を理解する
✅ 例外の発生方法 と 対処方法 を学ぶ
✅ try
~ except
を使ってエラーを処理できるようになる
1️⃣ そもそも「例外」って何?
Pythonのプログラムが実行中にエラーが発生すると、例外(Exception) が発生します。
例えば、ゼロで割り算をすると ZeroDivisionError
という例外が出ます。
📌 実験:エラーを発生させてみよう
まずは、エラーが発生するコードを書いてみましょう👇
print("計算を開始します")
result = 10 / 0 # 0で割るエラー(ZeroDivisionError)
print(f"計算結果: {result}")
📝 実行結果
計算を開始します
Traceback (most recent call last):
File "main.py", line 2, in <module>
result = 10 / 0
ZeroDivisionError: division by zero
💥 エラーが発生すると、プログラムが途中で止まってしまいます!
➡ これを防ぐために、「例外処理」を行う必要があります! 🚀
2️⃣ try ~ except でエラーを処理する
エラーが発生しそうな処理を try
ブロックに書き、
エラーが起きたら except
で対処する方法を学びましょう!
📌 ハンズオン:エラーをキャッチして処理する
次のコードを実行してみてください👇
try:
print("計算を開始します")
result = 10 / 0 # 例外が発生
print(f"計算結果: {result}")
except ZeroDivisionError:
print("エラー: 0で割ることはできません")
📝 実行結果
計算を開始します
エラー: 0で割ることはできません
🎉 except
のおかげで、プログラムが止まらずに処理を続けられました!
3️⃣ いろいろなエラーに対応しよう
Pythonには ZeroDivisionError
以外にも、
ValueError
や IndexError
などのエラーがあります。
📌 ハンズオン:複数のエラーを処理
次のコードを試してみましょう👇
try:
num = int(input("数字を入力してください: ")) # 文字を入力するとエラー
result = 10 / num # 0を入力するとエラー
print(f"計算結果: {result}")
except ZeroDivisionError:
print("エラー: 0で割ることはできません")
except ValueError:
print("エラー: 数字を入力してください")
📝 入力例と結果
✅ 入力 2
の場合:
数字を入力してください: 2
計算結果: 5.0
❌ 入力 0
の場合:
数字を入力してください: 0
エラー: 0で割ることはできません
❌ 入力 abc
の場合:
数字を入力してください: abc
エラー: 数字を入力してください
🎯 異なる種類のエラーに対応できるようになりました! 🚀
4️⃣ except でエラーの詳細を取得する
エラーの詳細を知りたいときは、except Exception as e
を使います。
📌 ハンズオン:エラー内容を表示
try:
num = int(input("数字を入力してください: "))
result = 10 / num
print(f"計算結果: {result}")
except Exception as e: # すべてのエラーをキャッチ
print(f"エラーが発生しました: {e}")
📝 実行例
数字を入力してください: 0
エラーが発生しました: division by zero
数字を入力してください: abc
エラーが発生しました: invalid literal for int() with base 10: 'abc'
💡 エラーの詳細を表示すれば、デバッグがしやすくなります!
5️⃣ finally で必ず実行する処理
finally
を使うと、例外が発生しても 最後に必ず実行される処理 を書けます。
📌 ハンズオン:finally
を使う
try:
num = int(input("数字を入力してください: "))
result = 10 / num
print(f"計算結果: {result}")
except ZeroDivisionError:
print("エラー: 0で割ることはできません")
except ValueError:
print("エラー: 数字を入力してください")
finally:
print("プログラム終了") # 例外が発生しても必ず実行
📝 実行結果
数字を入力してください: 0
エラー: 0で割ることはできません
プログラム終了
数字を入力してください: 5
計算結果: 2.0
プログラム終了
💡 ファイルのクローズ処理やログ出力などに使えます!
6️⃣ raise を使ってエラーを発生させる
raise
を使うと、自分でエラーを発生させられます。
📌 ハンズオン:自作の例外を発生
def check_number(num):
if num < 0:
raise ValueError("負の数は許可されていません")
return num
try:
n = int(input("正の数を入力してください: "))
check_number(n)
print("正しい入力です!")
except ValueError as e:
print(f"エラー: {e}")
📝 実行例
正の数を入力してください: -5
エラー: 負の数は許可されていません
正の数を入力してください: 3
正しい入力です!
🚀 エラーチェックをカスタマイズできます!
🎉 まとめ
✅ 例外(Exception) は、プログラム実行中のエラーを処理する仕組み
✅ try
~ except
を使うと、エラーが発生してもプログラムを止めずに処理できる
✅ finally
を使うと、エラーが発生しても必ず実行される処理を追加できる
✅ raise
を使えば、自分でエラーを発生させられる
💡 Pythonの例外処理をマスターして、エラーに強いコードを書きましょう! 🚀