カテゴリ: PHP 更新日: 2026/02/25

PHPのtry-catchで学ぶ例外処理入門!初心者でも理解できるエラーハンドリング基礎ガイド

PHP の try-catch を使った例外処理(Exception の基本)
PHP の try-catch を使った例外処理(Exception の基本)

先生と生徒の会話形式で理解しよう

生徒

「PHPでプログラムが止まってしまうエラーが出たときに、どう対処すればいいんですか?」

先生

「そんなときこそ PHP の try-catch を使った例外処理が役に立ちますよ。プログラムが止まらないようにエラーをキャッチできます。」

生徒

「エラーをキャッチするってどんな仕組みなんですか?言葉だけだと難しそうです…」

先生

「大丈夫ですよ。例外処理は慣れれば便利ですし、初心者でも理解できます。では、順番にわかりやすく説明していきますね。」

-

1. PHPのtry-catchとは?初心者向けにやさしく解説

1. PHPのtry-catchとは?初心者向けにやさしく解説
1. PHPのtry-catchとは?初心者向けにやさしく解説

PHPのtry-catchは、「エラーが起きるかもしれない処理」をあらかじめ囲んでおくことで、実際に問題が発生してもプログラム全体が止まらないようにするための仕組みです。 このとき発生するエラーのことを「例外(Exception)」と呼びます。

例外とは、PHPが「このまま処理を続けるのは危険ですよ」と教えてくれる合図のようなものです。tryの中で問題が起きると、その時点で処理はcatchに移り、 あらかじめ用意しておいた対応を実行できます。

たとえば、銀行のATMで操作ミスをすると「この操作はできません」と表示されますが、機械自体は止まりませんよね。 try-catchも同じで、「エラーが起きたから即終了」ではなく、「エラーが起きたので別の対応をする」という考え方になります。

プログラミング未経験の方は、「失敗したときの保険をかけておく仕組み」だとイメージすると分かりやすいでしょう。 これを使えるようになると、安定したPHPプログラムが書けるようになります。

2. try-catch構文の基本的な書き方

2. try-catch構文の基本的な書き方
2. try-catch構文の基本的な書き方

ここでは、PHPのtry-catch構文の基本的な形を確認していきましょう。考え方としてはとてもシンプルで、 「まずtryで処理を実行し、問題が起きたらcatchで対応する」という流れになります。

プログラミング未経験の方は、tryを「うまくいく前提で試す場所」、catchを「失敗したときの受け止め役」だと考えると理解しやすくなります。


try {
    // エラーが発生する可能性のある処理
    $result = 10 / 0; // ゼロで割るとエラーになる
} catch (Exception $e) {
    // エラーが発生したときの処理
    echo "エラーが発生しました:" . $e->getMessage();
}

この例では、0で割るというエラーが起きやすい処理をtryの中に書いています。 実際にエラーが発生すると、処理はすぐにcatchへ移動し、用意しておいたメッセージが表示されます。

try-catchを使わない場合は、ここでプログラムが止まってしまいますが、 例外処理を入れておくことで、エラー発生後も安全に処理を続けられるようになります。

3. Exception(例外)とは何?初心者向けにわかりやすく解説

3. Exception(例外)とは何?初心者向けにわかりやすく解説
3. Exception(例外)とは何?初心者向けにわかりやすく解説

Exception(例外)とは、PHPで発生したエラーや問題の内容をまとめて持っている特別なオブジェクトです。 オブジェクトとは、「いくつかの情報をひとまとめにした箱」のようなものだと考えると分かりやすいでしょう。

tryの中で問題が起きると、PHPは自動的にExceptionオブジェクトを作成し、その内容をcatchに渡します。 catch側では、$e->getMessage()を使って「どんなエラーが起きたのか」を文字として取り出すことができます。

たとえば、「ファイルが見つからない」「計算できない値が使われた」などの情報が、このExceptionの中に入っています。 これによって、開発者はエラーの原因をすぐに把握でき、適切な対応を考えられるようになります。

日常生活でたとえると、宅配便に「不在でした」「住所不明です」といったメモが添えられている状態に近いです。 何が問題だったのかがはっきり分かるため、次にどうすればいいか判断しやすくなるのが、Exceptionの大きな役割です。

4. try-catchでよく使われる書き方を例で学ぼう

4. try-catchでよく使われる書き方を例で学ぼう
4. try-catchでよく使われる書き方を例で学ぼう

PHPでは、データベース接続やファイル読み込み、外部APIへのアクセスなど、 「失敗する可能性がある処理」に対してtry-catchを使う場面がとても多くあります。 ここでは初心者の方にもイメージしやすい、ファイル読み込みの例を見てみましょう。

ファイル操作は、「ファイルが存在しない」「読み取り権限がない」などの理由で、 思った通りに動かないことがよくあります。そのため、あらかじめ例外処理を書いておくことが大切です。


try {
    // ファイルが存在するかを確認
    if (!file_exists("sample.txt")) {
        throw new Exception("ファイルが見つかりません。");
    }

    // ファイルの中身を読み込む
    $content = file_get_contents("sample.txt");
    echo $content;

} catch (Exception $e) {
    // エラーが起きた場合の処理
    echo "エラー:" . $e->getMessage();
}

この例では、まずファイルの存在をチェックし、見つからなければ throwを使って自分で例外を発生させています。 こうすることで、問題が起きた時点で処理をcatchに移し、無理に先へ進まないようにできます。

throwは「ここで問題が起きたことを知らせる合図」のようなものです。 エラーの原因をはっきりさせて処理を分けられるため、初心者の方でも安全なコードを書きやすくなります。

-

5. try-catchを使うメリットとは?初心者でも理解できるポイント

5. try-catchを使うメリットとは?初心者でも理解できるポイント
5. try-catchを使うメリットとは?初心者でも理解できるポイント

PHPでtry-catchを使う最大のメリットは、プログラムが突然止まってしまうのを防げることです。

  • エラーの原因をログに残せる
  • ユーザーに優しいエラーメッセージを表示できる
  • システムの安定性が高くなる
  • 処理の流れをわかりやすく管理できる

特にWebアプリケーションでは、何か問題が起きても画面が真っ白にならず、ユーザーに状況を丁寧に知らせることがとても重要です。

6. finally句についても知っておこう

6. finally句についても知っておこう
6. finally句についても知っておこう

try-catchには、finallyという便利な仕組みもあります。finallyは「エラーがあってもなくても、最後に必ず実行する処理」を書く場所です。 たとえばデータベースの接続解除などに使われます。


try {
    echo "処理を開始します。";
    throw new Exception("問題が発生しました。");
} catch (Exception $e) {
    echo "エラー:" . $e->getMessage();
} finally {
    echo "必ず実行される後処理です。";
}

最後の後片付けを確実に行えるので、実務でもよく使われます。

7. 実際の開発でよく使う例外処理のコツ

7. 実際の開発でよく使う例外処理のコツ
7. 実際の開発でよく使う例外処理のコツ

PHPの例外処理を効果的に使うためのポイントをまとめて紹介します。

  • エラーが起こりそうな部分はできるだけtry内にまとめる
  • 例外メッセージには具体的な情報を入れる
  • ログファイルに記録しておくと調査がスムーズ
  • ユーザーにはやさしい文章で伝える(専門用語を使わない)
  • finallyで後始末を忘れない

これらを意識するだけで、初心者でも質の高いPHPエラーハンドリングができるようになります。

まとめ

まとめ
まとめ

PHPの例外処理であるtry-catchは、プログラムを安全に動かすための重要な考え方です。初心者のうちは、エラーが出ると「もうダメだ」「動かなくなった」と不安になりがちですが、例外処理を学ぶことで 「エラーが起きても落ち着いて対処できる」そんな視点が身につきます。今回の記事では、例外の仕組みとExceptionオブジェクトの役割、そしてthrowによる例外発生の方法など、 PHPのエラーハンドリングに必要な基礎をひとつずつ丁寧に確認してきました。

tryブロックの中では「エラーが起きるかもしれない処理」をまとめ、catchでは「問題が起きたらこう動く」というフォローを入れます。これはまるで、予想外のことが発生しても次の行動を準備しておく、 そんな安全策のようなものです。特にファイル操作や外部APIとの通信、データベースの接続といった不安定要素が多い処理では、例外処理の有無がアプリの品質と安定性を大きく左右します。 エラーの原因をわかりやすく取得できる$e->getMessage()の存在は、初心者にとっても強力なヒントになります。

また、finallyのように「必ず実行したい処理」を書く場所があることで、例外が起きても後始末が必ず完了し、データベース接続やファイル操作などの後処理が確実に行われるようになります。 この構造を理解しておくと、エラーで止まることが減り、ユーザーにとっても安心できる安定したアプリを作れるようになります。 try-catchを適切に使い、例外処理を丁寧に書くことは「読みやすいコード」「バグの少ないコード」「保守しやすいコード」への近道でもあります。

エラーが起こりそうな部分だけにtryを使うこと、例外メッセージに具体的な情報を残すこと、ログを活用することなど、シンプルなポイントを積み重ねていくだけで例外処理の質は格段に上がります。 初心者のうちから例外処理を避けずに向き合うことで、プログラムの動きが理解しやすくなり、実務で役に立つ知識がしっかり身につきます。

例外処理の理解に役立つサンプルコード


<?php
function readFileContent($file) {
    try {
        if (!file_exists($file)) {
            throw new Exception("指定されたファイルが存在しません: " . $file);
        }

        $content = file_get_contents($file);
        return $content;

    } catch (Exception $e) {
        // エラーログに記録
        error_log("エラー発生: " . $e->getMessage());
        return "読み込み中に問題が発生しました。";

    } finally {
        // 必ず実行される後処理
        // 後片付けやログ出力などを記述
        error_log("readFileContent処理が終了しました。");
    }
}

echo readFileContent("data.txt");
?>

このサンプルでは、throwで例外を発生させつつ、catchでエラー内容を丁寧に処理し、finallyで確実な後処理も行っています。PHPの例外処理の基本がこのコードに凝縮されていて、 ファイル操作や外部APIの読み込みなど、さまざまな場面で応用できます。

例外処理を学ぶことは、エラーを恐れずにプログラムを書けるようになるための大きな一歩です。ぜひ今回の理解を基に、より複雑な処理や実践的な開発にも挑戦してみてください。

先生と生徒の振り返り会話

生徒

「例外処理って難しいと思っていたんですが、tryの中で危ない処理をまとめて、catchで受け止めるだけなんですね。なんだか安心しました!」

先生

「そうなんです。仕組み自体はとてもシンプルですよ。エラーをキャッチできるようにしておけば、プログラム全体が止まるような事態を防げます。」

生徒

「finallyがあると後始末が確実にできるのもいいですね。データベースの接続を閉じるところとか、ちゃんと動く気がしました!」

先生

「その感覚はとても大事です。例外処理は安心して開発を進めるための仕組みでもありますから、慣れていくとどんどん書けるようになりますよ。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonの変数スコープとは?初心者でもわかるローカル変数とグローバル変数の違い
New2
Python
PythonのNoneとは?NoneTypeの使い方とnullとの違いをわかりやすく解説
New3
Python
Pythonで文字列の長さを取得する方法!len()の基本と応用
New4
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方
No.2
Java&Spring記事人気No2
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
Java&Spring記事人気No3
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
No.6
Java&Spring記事人気No6
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
PHP
PHP の可変変数と変数の参照渡しを完全解説!初心者でも理解できる動的変数の使い方
-
-