割り算を繰り返している最中に、ゼロで割り算してしまったら、そこで ZeroDivisionError
という例外が発生します。
例外処理 try..except
を使わない not_used()
関数は、そこでプログラムが異常終了してしまいますが、
例外処理を使っている used()
関数は処理を中断せずに最後まで実行します。
プログラムにとって、途中で異常終了するのは最悪なことです。
とくにマルチユーザのプログラムでは、1人のユーザの操作が原因で全員の作業を中断させてしまうことにもなります。なので、このような致命的な事態はできるだけ避けなければなりません。
上の例のように、原因が分かりきっているバグはすぐに取ってしまえばいいですが、原因が予測できないケースや、原因が多岐にわたるケースもあります。
そのような場合は、エラーを避けるための事前確認処理として if .. elif .. else
を何個も入れることになり、結果として読みづらいコードになりがちです。
例外処理 try..except
を使えば比較的シンプルにエラー処理を書くことができ、開発時には想定していなかったケースにも対応しやすいです。