概要

プログラムを書いていると、「ファイルが無い」「DB に繋がらない」「予期しない値が来た」など、正常ルートでは処理しきれない事態 が必ず発生する。素朴に書こうとすると、関数が false を返したり -1 を返したりして、呼び出し側で毎回その戻り値を if で見張る作りになる。これが何階層にも積み重なると、本来やりたい処理よりエラーチェックの方が多くなる。

PHP の 例外 (Exception) は、この問題を「正常ルートとエラールートを別の線路に分ける」ことで解決する仕組み。try ブロックの中で問題が起きると、その時点で残りの処理はスキップされ、対応する catch ブロックに 強制的にジャンプ する。呼び出し側の関数を何階層またいでも、途中の if 監視なしに一気に飛んでこれる。

PHP では基本となる例外型として Exception クラス が用意されていて、その下に RuntimeException / InvalidArgumentException などの標準例外がツリー状に並んでいる。この章ではまず try { ... } catch (Exception $e) { ... } の素朴な形を書いて、「例外を受け止めればプログラムは落ちずに続けられる」感覚を掴む。

学習目標

ドリル

no 内容
01 throw new Exceptiontry / catch で受け止める

演習: ドリル 01 — try / catch で例外を受け止める

問題

以下の順番に出力する PHP を書いてください。

  1. "前" を 1 行出力
  2. try の中で throw new Exception("問題発生") を呼ぶ
  3. catch (Exception $e) の中で "受け止めた" を 1 行出力
  4. try / catch の後で "後" を 1 行出力

期待される出力:

前
受け止めた
後

ヒント

この章を AI に聞く

  1. 「ch01 — try / catch の基本」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch01 — try / catch の基本」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch01 — try / catch の基本」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch01 — try / catch の基本」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE