カテゴリ: 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
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.2
Java&Spring記事人気No2
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.3
Java&Spring記事人気No3
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.4
Java&Spring記事人気No4
Laravel
Laravelのresponse()関数の使い方を完全ガイド!初心者でもわかるレスポンス制御とHTTPレスポンスの基本
No.5
Java&Spring記事人気No5
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.6
Java&Spring記事人気No6
Laravel
LaravelでRemember Me(ログイン状態保持)機能を実装する方法を完全解説!初心者でも安心の認証入門
No.7
Java&Spring記事人気No7
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.8
Java&Spring記事人気No8
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点