カテゴリ: CodeIgniter 更新日: 2026/05/15

CodeIgniterでエラーメッセージを画面表示する方法!初心者向けエラーハンドリング徹底解説

CodeIgniterでエラーメッセージを画面表示する方法
CodeIgniterでエラーメッセージを画面表示する方法

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

生徒

「CodeIgniterでプログラムを作っているのですが、エラーが起きても画面が真っ白で何が悪いのか分かりません…。」

先生

「それは困りましたね。プログラムに間違いがあるとき、どこが間違っているか教えてくれるのが『エラーメッセージ』です。」

生徒

「どうすればそのメッセージを画面に出せるようになりますか?」

先生

「CodeIgniterには、開発中だけエラーを表示させる便利な設定があります。一緒に設定方法を見ていきましょう!」

1. エラーメッセージとエラーハンドリングとは?

1. エラーメッセージとエラーハンドリングとは?
1. エラーメッセージとエラーハンドリングとは?

プログラミングをしていると、必ずどこかで書き間違いや勘違いが発生します。これをバグと呼びますが、バグがあるときに「ここが間違っているよ!」と教えてくれる通知がエラーメッセージです。

そして、そのエラーが発生したときに、プログラムをどう動かすか、あるいはどうやって人間に知らせるかという一連の仕組みをエラーハンドリング(例外処理)と言います。ハンドリングとは「操作する」「扱う」という意味で、車のハンドル操作と同じように、エラーというトラブルを上手にコントロールすることを指します。

CodeIgniter(コードイグナイター)というPHPのフレームワーク(便利な道具箱のようなもの)では、このエラーハンドリングをとても簡単に設定できるようになっています。初心者の方はまず、「開発中はエラーを画面に出し、完成して公開するときはエラーを隠す」という切り替えを覚えることが大切です。

2. 開発モード(Environment)を「development」に設定する

2. 開発モード(Environment)を「development」に設定する
2. 開発モード(Environment)を「development」に設定する

CodeIgniterでエラーを表示させる一番の方法は、システムの状態を「development(開発中)」モードにすることです。パソコンを初めて触る方にとっては聞き慣れない言葉かもしれませんが、これは「今は作成中だから、エラーを全部見せてね」という合図になります。

設定は、プロジェクトのメインフォルダにある.envというファイル、またはindex.phpで行います。特によく使われるのが.envファイルです。このファイルの中に、環境を定義する場所があります。

環境(environment)とは、プログラムが動いている状況のことです。自分のパソコンで練習しているときは「開発環境」、世界中の人が見る本番のサイトは「本番環境(production)」と呼び分けます。


# .envファイルの中身を書き換える例
CI_ENVIRONMENT = development

このように設定するだけで、もしプログラムに間違いがあれば、CodeIgniterが詳細なエラー画面を表示してくれるようになります。逆にここをproductionにすると、セキュリティのためにエラー内容は隠されます。

3. 実際にエラーを表示させてみよう(構文エラーの例)

3. 実際にエラーを表示させてみよう(構文エラーの例)
3. 実際にエラーを表示させてみよう(構文エラーの例)

では、わざと間違ったコードを書いて、どのようにエラーが表示されるか実験してみましょう。例えば、命令の最後につける「セミコロン(;)」を忘れてみます。これは初心者の方が最もよくやってしまうミスの一つです。

これを専門用語で構文エラー(Syntax Error)と呼びます。文章の書き方が間違っていて、コンピュータが意味を理解できない状態のことです。日本語で言うと「私は、ご飯を」で文章が終わってしまい、何を言いたいのか分からないような状態ですね。


// コントローラー内のメソッド例
public function index()
{
    $message = "こんにちは" // ここでセミコロンを忘れる
    echo $message;
}

このプログラムを実行すると、開発モードであれば画面に「syntax error, unexpected 'echo'」といったメッセージが表示されます。これは「echoがあるはずのない場所に出てきたよ(その前の行が終わっていないからだよ)」というヒントをくれているのです。これを見れば、どこを直せばいいかすぐに分かりますね。

4. ログファイルを確認してエラーを特定する

4. ログファイルを確認してエラーを特定する
4. ログファイルを確認してエラーを特定する

画面にエラーを表示する以外にも、「ログ」という記録をファイルに残す方法があります。ログとは、航海日誌や日記のようなもので、システムがいつ、どんなエラーを起こしたかを自動でメモしてくれる機能です。

画面にエラーを出すと、見た目が崩れてしまったり、サイトの裏側が他人にバレてしまったりするリスクがあります。そのため、画面には出さずに、裏側のファイルにこっそり書き込んでおくという手法がよく使われます。CodeIgniterではwritable/logs/というフォルダの中に、日付ごとのファイルが作られます。

設定ファイル(app/Config/Logger.php)で、どのレベルまで記録するかを決めることができます。これを調整することで、深刻なエラーだけを記録したり、ちょっとした注意(デバッグ情報)まで記録したりできるようになります。


// 設定ファイルでのログレベル設定例
public $threshold = 4; // 4にすると細かいデバッグ情報まで全て記録されます

実行結果として、ログファイルには以下のように書き込まれます。


ERROR - 2026-01-08 10:00:00 --> Severity: Error --> Division by zero /path/to/file.php 45

これは「45行目で0で割り算をしようとしたよ」というエラーの記録です。数学と同じで、プログラミングでも0で割ることは禁止されているため、エラーが発生します。

5. 例外処理(try...catch)を使ってみよう

5. 例外処理(try...catch)を使ってみよう
5. 例外処理(try...catch)を使ってみよう

次に、少しレベルアップして例外処理(Exception Handling)に挑戦しましょう。これは、「もしエラーが起きそうだったら、こっちの処理をしてね」とあらかじめ予約しておく方法です。これを使うには、try(トライ)とcatch(キャッチ)という言葉を使います。

「エラーが起きるかもしれないけどやってみる(try)」、もしエラーが起きたら「それを捕まえて(catch)、別の対応をする」という流れです。例えば、インターネットから画像を取ってこようとしたけれど、相手のサイトが落ちていて取れなかった場合などに便利です。そのままエラーで画面を止めるのではなく、「画像がありませんでした」という優しいメッセージを出すことができます。


public function showUser($id)
{
    try {
        // IDが0以下の場合はわざとエラー(例外)を投げる
        if ($id <= 0) {
            throw new \Exception("正しいIDを指定してください。");
        }
        echo "ユーザーID " . $id . " の情報を表示します。";
    } catch (\Exception $e) {
        // エラーが発生したときの処理
        echo "【エラー通知】: " . $e->getMessage();
    }
}

このコードで$id-1を入れた場合の実行結果は以下のようになります。


【エラー通知】: 正しいIDを指定してください。

このように、システムが突然真っ白になって止まるのを防ぎ、ユーザーに何が起きたかを分かりやすく伝えることができます。これを「親切なエラー表示」と呼びます。

6. 404エラー(ページが見つからない)の表示方法

6. 404エラー(ページが見つからない)の表示方法
6. 404エラー(ページが見つからない)の表示方法

インターネットを使っていると、「404 Not Found」という文字を見たことはありませんか?これは、アクセスしたURLが存在しないときに表示されるエラーです。CodeIgniterでも、存在しないページにアクセスされたときに、このエラーを画面に表示させることができます。

自分でこのエラーを呼び出したいときは、PageNotFoundExceptionという特別な仕組みを使います。これを使うことで、不適切なアクセスがあったときに「そのページはありませんよ」と正しく案内できます。


public function profile($name = null)
{
    if ($name === null) {
        // 名前が指定されていない場合は、404エラー画面を表示する
        throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
    }
    echo $name . "さんのプロフィールページです。";
}

こうすることで、CodeIgniterが用意してくれている「お洒落なエラー専用の画面」が表示されます。初心者のうちは、自分でエラー画面を作るのは大変ですが、この一行を書くだけでしっかりとしたエラー対応ができるようになります。

7. 画面に表示されるエラー内容を読み解くコツ

7. 画面に表示されるエラー内容を読み解くコツ
7. 画面に表示されるエラー内容を読み解くコツ

CodeIgniterのエラー画面は非常に高機能です。初めて見ると英語ばかりで驚くかもしれませんが、注目すべき点は決まっています。それは「エラーの種類」「エラーが起きた場所(ファイル名)」「何行目か(Line Number)」の3つです。

画面の一番上に太字で書かれているのが「何のエラーか」です。その下に、ファイルまでの住所(パス)が書いてあります。自分のパソコンのどこにあるファイルかが一目で分かります。そして「Line 12」のように数字が書いてあれば、それは「上から数えて12行目に間違いがあるよ」という意味です。

また、スタックトレースという項目もあります。これは、エラーが起きるまでに、どの関数(命令のまとまり)を順番に通ってきたかという履歴です。犯人探しの足跡のようなものですね。これを辿っていくことで、どこでデータがおかしくなったのかを突き止めることができます。最初は難しく感じますが、じっくり眺めることから始めてみましょう。

8. デバッグツールバーを活用しよう

8. デバッグツールバーを活用しよう
8. デバッグツールバーを活用しよう

最後に、エラー表示とは少し違いますが、エラーを防ぐための心強い味方を紹介します。CodeIgniterには、画面の右下に小さな炎のマークのアイコンが表示される機能があります。これをデバッグツールバーと呼びます。

このバーをクリックすると、今動いているプログラムがどれくらいのメモリ(パソコンのパワー)を使っているか、データベースとどんなやり取りをしたか、といった情報が丸見えになります。エラーが出る前兆を見つけたり、どこで動作が遅くなっているかを確認したりするのに非常に役立ちます。

これも、先ほど説明した「development(開発中)」モードに設定しているときだけ現れます。エラーメッセージだけでなく、このツールバーの情報も一緒に見る癖をつけることで、プログラミングの理解がぐっと深まります。エラーを恐れず、メッセージをよく読んで、一つずつ解決していくことが上達への一番の近道です。頑張りましょう!

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.3
Java&Spring記事人気No3
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.4
Java&Spring記事人気No4
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.5
Java&Spring記事人気No5
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.6
Java&Spring記事人気No6
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterでファイルアップロードとストレージ管理をマスター!初心者向け完全ガイド