{category}

PHP - エラーハンドリング

set_error_handler()

セット エラー ハンドラー(エラー処理・デバッグ・テスト

意味 カスタムエラーハンドラの設定


set_error_handler()とは?

PHPのエラーを処理するカスタム関数を設定する関数です。これにより、エラーが発生したときの動作をプログラマが制御できるようになります。

set_error_handler()の具体的な使い方

カスタムエラーハンドラの設定と使用

function customErrorHandler($errno, $errstr, $errfile, $errline) {
    $errorType = match($errno) {
        E_ERROR => 'エラー',
        E_WARNING => '警告',
        E_NOTICE => '注意',
        default => 'その他'
    };
    echo "[$errorType] $errstr in $errfile on line $errline\n";
    return true;
}

set_error_handler('customErrorHandler');

// エラーを発生させる
$undefinedVariable;
echo $nonExistentArray[0];

👇出力結果

[注意] Undefined variable $undefinedVariable in /path/to/your/script.php on line 13
[警告] Undefined variable $nonExistentArray in /path/to/your/script.php on line 14

customErrorHandlerという独自のエラーハンドラ関数を定義し、set_error_handler()を使ってそれをPHPのエラーハンドラとして設定しています。この関数は、エラーの種類に応じて適切なメッセージを出力します。その後、意図的にエラーを発生させて、カスタムエラーハンドラの動作を確認しています。

set_error_handler()に関するよくある質問

Q. エラーハンドラの利点は?
A. カスタムエラーハンドラを使用することで、エラーの処理方法をカスタマイズできます。ログ記録、ユーザーへの通知、特定のエラーの無視など、アプリケーションのニーズに合わせたエラー処理が可能になります。
Q. デフォルトハンドラは無効に?
A. set_error_handler()を使用すると、ほとんどのエラーでPHPのデフォルトエラーハンドラは無効になります。ただし、E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNINGなど一部のエラーは、カスタムハンドラでは捕捉できません。
Q. エラーレベルの指定は可能?
A. はい、set_error_handler()の第二引数でエラーレベルを指定できます。例えば、set_error_handler('myErrorHandler', E_ALL | E_STRICT)とすることで、すべての種類のエラーと厳格な警告を捕捉できます。

set_error_handler()が学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのset_error_handler()やTDD、error_reporting()、ini_set()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

TDD

テスト駆動開発の略称

種類: テスト手法

error_reporting()

エラー報告レベルの設定

種類: エラー報告

ini_set()

PHPの設定を変更する関数

種類: エラー報告

is_array()

配列かどうかを判定する関数

種類: 型チェック

<?= ?>

変数や式の出力を簡略化

種類: PHPタグ