エラー処理のマスター (else / finally)

「とりあえず try-except を使えばプログラムは死なない!」と安心していませんか?
実は例外処理(エラーハンドリング)には、もう少し奥深い世界があります。
ここでは、さらに安全で正確なプログラムを作るための 4つの構文 と、自分でエラーを起こす raise について学びましょう。

1. 特定のエラーだけを狙い撃ちする

ただ except: と書くと、どんな種類のエラーが起きても そこで処理を引き取ってしまいます。
しかし実際には、「文字が入力されたエラー(ValueError)」と「ゼロで割ろうとしたエラー(ZeroDivisionError)」は別々に対処したいですよね。

specific_except.py
Loading...

2. 成功した時(else) と 絶対やる時(finally)

tryexcept に加えて、以下の2つをくっつけることができます。

  • else : エラーが「起きなかった時」だけ実行される
  • finally : エラーが起きても起きなくても「絶対に最後に」実行される(後片付けなどに使う)
else_finally.py
Loading...

3. 自分からエラーを起こす (raise)

今までエラーは「防ぐ」ものでしたが、時には「自分からワザとエラーを起こして、プログラムを安全に止める」ことも必要です。
これを raise (レイズ:投げる、起こす) と呼びます。

raise_error.py
Loading...

「わざわざエラーにするなんて…」と思うかもしれませんが、変なデータが紛れ込んだままプログラムが進んで大惨事になるのを未然に防ぐ、立派なバリアになります。

🎯 練習問題:鉄壁のパスワード設定

パスワードを設定する関数 set_password を作ります。
渡されたパスワード(文字)の長さが 8文字未満 だったら、ValueErrorraise して「パスワードが短すぎます!」とエラーを起こしてください。
8文字以上なら「パスワードを登録しました。」と表示します。

password_check.py
Loading...