例外処理
Exception Handling/れいがいしょり
ひとことで言うと
プログラム実行中に起きた想定外のエラーを捕まえて、安全に対応するしくみのことです。
プログラムは、いつも順調に動くとはかぎりません。ファイルが見つからない、ネットがつながらない、数を0で割ってしまった。こうした「想定していなかった出来事」が起きたとき、プログラムを止めずに、あるいは安全に止めて対応するしくみが「例外処理」です。
📖 もうちょい詳しく
何が新しいの?
例外処理は新しい技術ではなく、多くのプログラミング言語にむかしから備わっている基本的なしくみです。むかしは「エラーが起きたかどうか」を、戻り値の数字でいちいち自分で確認していました。それだと書き忘れが起きやすかったので、エラーを専用の流れで一気に扱える「例外」という考え方が広まりました。
どうやって動いてるの?
処理を「試す部分」と「失敗したときに対応する部分」に分けて書きます。多くの言語では try(試す)と catch(受けとる)という書き方を使います。try の中でエラーが起きると、その時点で処理がいったん中断し、catch の中へ流れが飛びます。エラーは「例外オブジェクト」という、原因の情報を持ったかたまりとして渡されるので、内容を見て対応を決められます。
何ができるの?
たとえばファイルの読み込みに失敗しても、いきなりアプリが落ちるのではなく「読み込めませんでした」と画面に出して、別の動きを続けられます。さらに finally(最後に必ず)という部分を使えば、成功しても失敗しても後片付け(開いたファイルを閉じる等)を確実に行えます。
🌱 身近なたとえ
料理のレシピで例えると分かりやすいです。「卵を割る」という手順で、もし殻が入ってしまったら(=例外)、レシピをそこで投げ出すのではなく「殻を取り除いてから続ける」という対応をあらかじめ決めておくイメージです。例外処理は、この「もし失敗したら、こうする」という備えをコードに書いておくことなのです。
✅ まず覚えるポイント
- 例外処理は、想定外のエラーが起きたときの「備え」のしくみです
tryで処理を試し、catchで失敗を受けとめます- エラーの中身(例外オブジェクト)を見て、対応を変えられます
finallyを使うと、成功・失敗にかかわらず後片付けができます- 適切に使うと、エラーが起きてもアプリ全体が止まりにくくなります
🧭 よくある勘違い
例外処理を書けばエラーは消える?
いいえ、エラーそのものが消えるわけではありません。エラーが起きること自体は防げず、起きたあとに「どう対応するか」を決めるのが例外処理です。原因をなおさないかぎり、同じ状況になればまた発生します。
とりあえず全部 catch で握りつぶせばいい?
それは危険なことが多いです。エラーを受けとっても何もせずに無視すると、不具合に気づけなくなり、原因の追跡がむずかしくなります。受けとったエラーは、記録(ログ)に残したり、利用者に伝えたりして、見える状態にしておくのが基本です。
🧩 関連して覚えると楽な言葉
- ログ(log): 発生したエラーや動作の記録。例外をつかんだら、まずログに残すのが基本です
- ロールバック(rollback): 処理の途中で失敗したとき、変更をなかったことに戻すしくみ
- トランザクション(transaction): 一連の処理をまとめ、途中で失敗したら全部やり直す単位
- モニタリング(monitoring): システムの状態を見張り、エラーの発生に気づくしくみ
🏁 ひとことでまとめ
例外処理とは、プログラムが想定外のつまずきにあったとき、そのまま倒れずに立ち止まって対応するための「もしものときの段取り」です。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…