概要
プログラムを書いていると、「ファイルが無い」「DB に繋がらない」「予期しない値が来た」など、正常ルートでは処理しきれない事態 が必ず発生する。素朴に書こうとすると、関数が false を返したり -1 を返したりして、呼び出し側で毎回その戻り値を if で見張る作りになる。これが何階層にも積み重なると、本来やりたい処理よりエラーチェックの方が多くなる。
PHP の 例外 (Exception) は、この問題を「正常ルートとエラールートを別の線路に分ける」ことで解決する仕組み。try ブロックの中で問題が起きると、その時点で残りの処理はスキップされ、対応する catch ブロックに 強制的にジャンプ する。呼び出し側の関数を何階層またいでも、途中の if 監視なしに一気に飛んでこれる。
PHP では基本となる例外型として Exception クラス が用意されていて、その下に RuntimeException / InvalidArgumentException などの標準例外がツリー状に並んでいる。この章ではまず try { ... } catch (Exception $e) { ... } の素朴な形を書いて、「例外を受け止めればプログラムは落ちずに続けられる」感覚を掴む。
学習目標
try { ... } catch (Exception $e) { ... }の構文を書ける- 例外が起きると
tryの残りはスキップされ、catchブロックへ飛ぶ - 例外を 受け止めれば プログラムは落ちずに継続できる
ドリル
| no | 内容 |
|---|---|
| 01 | throw new Exception を try / catch で受け止める |
📝 演習: ドリル 01 — try / catch で例外を受け止める
問題
以下の順番に出力する PHP を書いてください。
"前"を 1 行出力tryの中でthrow new Exception("問題発生")を呼ぶcatch (Exception $e)の中で"受け止めた"を 1 行出力try / catchの後で"後"を 1 行出力
期待される出力:
前
受け止めた
後ヒント
try { throw new Exception("問題発生"); } catch (Exception $e) { ... }- 例外が起きても catch で受ければプログラムは止まらない