PHPのエラーハンドリングとは?エラーの種類と対処法をわかりやすく解説
PHPのエラーハンドリング(Error Handling)とは、プログラム実行中に発生するエラーへの対応方法を指します。
適切なエラーハンドリングを行うことで、プログラムの予期しない停止を防ぎ、ユーザーや開発者に有益な情報を提供できます。
エラーの主な種類
- Notice(通知):軽微な注意(未定義変数など)
- Warning(警告):処理は続行されるが問題あり(ファイルがないなど)
- Fatal Error(致命的エラー):スクリプトが停止(存在しない関数を呼び出すなど)
- Parse Error(構文エラー):文法ミス(セミコロン忘れなど)
基本的なエラー表示設定
// 開発中はエラーを表示
ini_set('display_errors', 1);
error_reporting(E_ALL);
error_reporting()
を使うと、表示するエラーのレベルを制御できます。
try-catchによる例外処理
PHP 5以降、例外(Exception) を使ったエラーハンドリングが可能になりました。
try {
// 例外が発生する可能性のある処理
throw new Exception("エラーが発生しました");
} catch (Exception $e) {
echo "エラー内容:" . $e->getMessage();
}
throw
で例外を発生させ、catch
で受け取って処理します。
複数の例外を個別に処理する
try {
// 処理
} catch (InvalidArgumentException $e) {
echo "引数エラー:" . $e->getMessage();
} catch (Exception $e) {
echo "一般的なエラー:" . $e->getMessage();
}
カスタムエラーハンドラの登録
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "エラー:[$errno] $errstr - $errfile:$errline";
}
set_error_handler("myErrorHandler");
この方法で、通常のPHPエラーもカスタム関数で処理できます。
ログに記録する
本番環境ではエラーを表示せず、ログに記録するのが一般的です。
ini_set('log_errors', 1);
ini_set('error_log', '/path/to/error.log');
まとめ
- PHPには複数のエラー種別(Notice, Warning, Fatal など)がある
try-catch
を使えば例外処理が可能
set_error_handler()
で独自のエラーハンドラを作れる
- 開発中はエラーを表示、本番ではログに記録するのが基本
エラーハンドリングを正しく行うことで、バグの発見・対処がしやすくなり、ユーザーにも安心して使ってもらえるアプリケーションが実現します。
状況に応じたエラー制御を取り入れて、安全で安定した開発を行いましょう。