カテゴリ: Symfony 更新日: 2026/02/11

Symfonyのカスタム例外クラスを完全解説!初心者でもわかる例外処理とデバッグ入門

Symfonyのカスタム例外クラスを作成する方法
Symfonyのカスタム例外クラスを作成する方法

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

生徒

「Symfonyでエラーが出たんですが、英語ばかりで何が起きているのかわかりません…」

先生

「Symfonyでは、エラーを『例外』という仕組みで管理しています。」

生徒

「例外って何ですか?エラーとは違うんですか?」

先生

「エラーを整理して、分かりやすく伝えるための仕組みだと思ってください。自分で作ることもできますよ。」

1. Symfonyの例外処理とは?

1. Symfonyの例外処理とは?
1. Symfonyの例外処理とは?

Symfonyの例外処理とは、プログラムの実行中に問題が起きたときに、その状況を安全に知らせるための仕組みです。パソコンを触ったことがない人でも、炊飯器がエラー音を鳴らして教えてくれる場面を想像すると分かりやすいです。Symfonyでは、この「エラーのお知らせ役」を例外と呼びます。

例外を使うことで、どこで何が問題だったのかを開発者がすぐに理解でき、Symfonyのデバッグ作業がとても楽になります。

2. 例外とエラーの違いをやさしく解説

2. 例外とエラーの違いをやさしく解説
2. 例外とエラーの違いをやさしく解説

エラーは、プログラムが止まってしまう重大なトラブルです。一方、例外は「問題は起きたけれど、どう対応するかを選べる状態」です。Symfonyでは例外を使うことで、画面に分かりやすいメッセージを出したり、ログに記録したりできます。

初心者のうちは「Symfonyではエラーを例外として扱う」と覚えておくだけで十分です。

3. Symfonyでカスタム例外クラスを作る理由

3. Symfonyでカスタム例外クラスを作る理由
3. Symfonyでカスタム例外クラスを作る理由

カスタム例外クラスとは、自分専用の例外を作ることです。例えば「ユーザーが見つからない」「入力内容が間違っている」など、状況ごとに名前を付けられます。

Symfonyでカスタム例外を作ると、コードが読みやすくなり、デバッグもしやすくなります。初心者でも「何が起きたのか」を日本語で理解しやすくなるのが大きなメリットです。

4. カスタム例外クラスの基本的な作り方

4. カスタム例外クラスの基本的な作り方
4. カスタム例外クラスの基本的な作り方

Symfonyでは、PHPのクラスという仕組みを使ってカスタム例外を作ります。クラスとは「設計図」のようなものです。


<?php
namespace App\Exception;

use Exception;

class UserNotFoundException extends Exception
{
}

この例では「ユーザーが見つからない」という状況専用の例外を作っています。extends Exceptionは「例外の仲間ですよ」という意味です。

5. 作成したカスタム例外を投げてみよう

5. 作成したカスタム例外を投げてみよう
5. 作成したカスタム例外を投げてみよう

例外は投げるという表現をします。難しく聞こえますが、「問題が起きたと知らせる」だけです。


<?php
if ($user === null) {
    throw new UserNotFoundException('ユーザーが見つかりません');
}

ここでは、ユーザーが存在しない場合にカスタム例外を発生させています。Symfonyの例外処理では、このようにして問題を明確にします。

6. カスタム例外を受け取って処理する方法

6. カスタム例外を受け取って処理する方法
6. カスタム例外を受け取って処理する方法

投げた例外は、catchという仕組みで受け取ります。これは「キャッチボールで受け取る」イメージです。


<?php
try {
    // 何かの処理
} catch (UserNotFoundException $e) {
    echo $e->getMessage();
}

Symfonyでは、この仕組みを使ってエラーページを表示したり、ログを残したりします。初心者でも「例外を受け取って表示する」と考えれば大丈夫です。

7. Symfonyのデバッグで役立つポイント

7. Symfonyのデバッグで役立つポイント
7. Symfonyのデバッグで役立つポイント

Symfonyのデバッグでは、カスタム例外を使うことで「どこで」「何が」起きたのかが一目で分かります。特に開発中は、エラーメッセージを具体的に書くことが重要です。


<?php
throw new \RuntimeException('予期しないエラーが発生しました');

このように、メッセージを工夫するだけでもデバッグのしやすさが大きく変わります。

8. 初心者がつまずきやすい注意点

8. 初心者がつまずきやすい注意点
8. 初心者がつまずきやすい注意点

Symfonyの例外処理でよくある失敗は、例外を作っただけで満足してしまうことです。必ず「どこで投げて、どこで受け取るか」を意識しましょう。

また、難しい英語のクラス名よりも、自分が理解できる名前を付けることが大切です。Symfonyは柔軟なので、初心者でも安心してカスタム例外を使えます。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのコントローラでリクエストをログ出力する方法を初心者向けに解説
New2
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
New3
Symfony
Symfonyのセッション管理完全ガイド!初心者でもわかるセッションドライバ設定(file・Redis)
New4
Laravel
Laravelのエラーメッセージをカスタマイズする方法|初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
No.2
Java&Spring記事人気No2
Laravel
LaravelでBasic認証を実装するミドルウェアの使い方!初心者向けガイド
No.3
Java&Spring記事人気No3
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.4
Java&Spring記事人気No4
Laravel
LaravelでファクトリとSeederを組み合わせてダミーデータを生成する方法!初心者でも簡単にテストデータ作成
No.5
Java&Spring記事人気No5
Symfony
SymfonyでTwigテンプレートを表示する方法を完全ガイド!初心者にもわかるHTMLとの違いや使い方
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方