【Pythonの例外処理をマスター】try-except文、raise文、カスタム例外を使ったエラー管理の魅力を実践で学ぼう!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

みんな、今日はPythonの例外処理について学ぶで!

Pythonって、プログラミングの世界ではほんまに便利な道具なんやけど、時には予期せんエラーが起こることもあるんや。そんな時に大事なのが「例外処理」。これをちゃんと理解しておくと、プログラムが急に止まったりせんと、スムーズに動かすことができるんやで。

例えば、料理をしてる時に、塩を入れすぎてしまったら、味が変わってしまうやんか。そこで、味見をして「これ、ちょっとしょっぱいな」と気づいたら、すぐに水を足して調整できる。これが例外処理の考え方に似てるんや。エラーが起きても、すぐに対処できるから、プログラムをちゃんと動かし続けられるんや。

それじゃあ、例外処理の基本から一緒に学んでいこか!

try-except文の基本構造

さて、まずは「try-except文」について説明するで!これが基本のキやから、しっかり押さえておいてな。

tryブロック

最初に「try」っていうブロックを使うんやけど、ここに実行したいコードを書く。もしそのコードがエラーを起こしたら、次に進むんや。

exceptブロック

エラーが起こった時にどうするかを「except」で指定するんや。これでエラーを捕まえて、適切な処理をすることができるで。例えば、エラーメッセージを表示したり、別の処理を行ったりするんや。

コード例

ここで、実際にtry-except文を使った例を見てみよう!

# ゼロで割るとエラーが起こる例
try:
    x = 10 / 0
except ZeroDivisionError:
    print("ゼロで割ったらあかんで!")

このコードでは、10を0で割ろうとしてエラーが起こるけど、exceptブロックのおかげで、エラーメッセージを表示することができるんや。

まとめ

このように、try-except文を使うことで、エラーが起きてもプログラムが止まらずに、柔軟に対応できるようになるんや。次は、複数の例外を捕捉して処理する方法について学んでいこう!

複数の例外の捕捉と処理

次は、複数の例外を捕まえて処理する方法についてやで!プログラムを作ってると、いろんなエラーが起こる可能性があるから、これを理解しとくことが大事なんや。

例外の種類

Pythonにはいろんな種類の例外があって、例えば「ZeroDivisionError」みたいなゼロで割った時のエラーや、「ValueError」みたいに不正な値が入った時のエラーがあるんや。このように、いくつかの異なるエラーを処理する必要がある場合もあるんや。

コード例

それじゃあ、複数の例外を捕まえるコードを見てみよう!

# ユーザーから数値を入力して、割り算をする例
try:
    num1 = int(input("1つ目の数を入力してな:"))
    num2 = int(input("2つ目の数を入力してな:"))
    result = num1 / num2
except ZeroDivisionError:
    print("ゼロで割ったらあかんで!")
except ValueError:
    print("数値を入力してな!")

このコードでは、ユーザーに2つの数を入力してもらって、その数で割り算をしてるんやけど、もしゼロで割ろうとしたら「ゼロで割ったらあかんで!」と表示されるし、不正な値(例えば文字など)が入力されたら「数値を入力してな!」と表示されるんや。

まとめ

このように、複数の例外をそれぞれ異なる処理で捕まえることができるんや。これで、プログラムの安定性がぐっと上がるで!次は、else句とfinally句の使い方を見ていこう!

else句とfinally句の使用

次は、try-except文に付け加えて使える「else句」と「finally句」について説明するで!これを使いこなすと、さらに便利にエラー処理ができるようになるんや。

else句の使い方

「else句」は、tryブロック内のコードが正常に実行された時にだけ実行される部分や。つまり、例外が発生せんかった場合に使うんや。これを使うと、エラーが無かった時の処理を分けて書けるから、プログラムがすっきりするで。

コード例

まずは、else句を使った例を見てみよう!

# 正常に割り算ができた時の処理
try:
    num1 = int(input("1つ目の数を入力してな:"))
    num2 = int(input("2つ目の数を入力してな:"))
    result = num1 / num2
except ZeroDivisionError:
    print("ゼロで割ったらあかんで!")
except ValueError:
    print("数値を入力してな!")
else:
    print(f"結果は {result} です!")

このコードでは、割り算が成功した場合にだけ結果を表示するようにしてるんや。エラーが無かった時の処理を明確にできるから、見やすくなるで。

finally句の使い方

次に「finally句」やけど、これは例外が発生してもしなくても、必ず実行される部分や。リソースの解放や、最後に必ず実行したい処理をここに書くんや。

コード例

finally句を使った例も見てみよう!

# 割り算の処理をして、必ずメッセージを表示する例
try:
    num1 = int(input("1つ目の数を入力してな:"))
    num2 = int(input("2つ目の数を入力してな:"))
    result = num1 / num2
except ZeroDivisionError:
    print("ゼロで割ったらあかんで!")
except ValueError:
    print("数値を入力してな!")
else:
    print(f"結果は {result} です!")
finally:
    print("処理が終わったで!")

ここでは、どんな場合でも「処理が終わったで!」というメッセージが表示されるようになってるんや。これで、プログラムが終わった後の処理を確実に行えるで。

まとめ

else句とfinally句を使うことで、エラー処理がより柔軟で効率的になるんや!次は、例外を自分で発生させる「raise文」について見ていこう!

例外の発生:raise文

次は「raise文」について学ぶで!これは自分で例外を発生させるための方法なんや。特定の条件が満たされた時に、エラーを起こして処理を停止させたい場合に使うんやで。

raise文の使い方

「raise」を使うことで、任意の例外を発生させることができるんや。これによって、自分が意図したエラー処理を行えるようになるんや。

コード例

それじゃあ、raise文を使った例を見てみよう!

# ユーザーからの入力が正しいかどうかをチェックする例
def check_positive(num):
    if num < 0:
        raise ValueError("負の数はあかんで!")
    return num

try:
    number = int(input("正の数を入力してな:"))
    check_positive(number)
    print(f"{number} は正の数やな!")
except ValueError as e:
    print(e)

このコードでは、ユーザーからの入力が負の数やった場合に「ValueError」を発生させるようにしてるんや。これで、負の数が入力されたら、適切なエラーメッセージが表示されるで。

まとめ

raise文を使うことで、自分でエラーを引き起こして、それに対する処理を柔軟に行えるようになるんや。これで、プログラムの信頼性がぐっと上がるで!次は、カスタム例外の作成と使用について学んでいこう!

カスタム例外の作成と使用

最後は、カスタム例外を作って使う方法について学ぶで!Pythonにはすでに多くの例外が用意されてるけど、独自のエラーを作ることで、より具体的なエラーメッセージを提供できるんや。

カスタム例外の作成

カスタム例外を作るには、Pythonの標準例外クラスを継承して新しいクラスを作るだけや。これによって、自分専用の例外を定義できるんや。

コード例

それじゃあ、カスタム例外を使った例を見てみよう!

# カスタム例外の定義
class NegativeNumberError(Exception):
    pass

# ユーザーからの入力をチェックする関数
def check_positive(num):
    if num < 0:
        raise NegativeNumberError("負の数はあかんで!")
    return num

try:
    number = int(input("正の数を入力してな:"))
    check_positive(number)
    print(f"{number} は正の数やな!")
except NegativeNumberError as e:
    print(e)
except ValueError:
    print("数値を入力してな!")

このコードでは、「NegativeNumberError」というカスタム例外を作って、負の数が入力された場合にその例外を発生させてるんや。これによって、エラーメッセージがより明確になるで。

まとめ

カスタム例外を使うことで、プログラムの可読性が上がり、エラー処理がより具体的になるんや。これで、例外処理の基礎がしっかり身についたで!これからは、実際のプログラム作成に活かしていってな!次のステップに進む準備はできたかな?

【Pythonの例外処理をマスター】try-except文、raise文、カスタム例外を使ったエラー管理の魅力を実践で学ぼう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次