PHPのエラーハンドリング完全ガイド!初心者でもわかるtry-catchとerror_reporting
生徒
「PHPを書いて動かそうとすると、英語のエラーがたくさん出てきて止まってしまいます…」
先生
「それはPHPが“ここで失敗していますよ”と教えてくれている状態ですね。」
生徒
「エラーって怖いものじゃないんですか?」
先生
「仕組みを知れば怖くありません。PHPにはエラーを安全に扱う方法がありますよ。」
1. PHPのエラーとは何か?
PHPのエラーとは、プログラムが正しく動かなかったときに表示されるお知らせです。パソコンを触ったことがない人向けに例えると、電子レンジでボタンを間違えて押したときに「エラー」と表示されるのと同じです。PHPはとても親切で、「どこで」「なにが」問題なのかを画面に表示してくれます。
PHPのエラー表示を理解することは、PHP初心者、プログラミング未経験者にとって最初の大切な一歩です。
2. エラーハンドリングとは?
エラーハンドリングとは、エラーが起きたときにプログラムを止めず、安全に処理する考え方です。例えば、雨が降ったときに傘をさすようなものです。何も準備していないとびしょ濡れになりますが、傘があれば安心です。
PHPのエラーハンドリングを学ぶことで、突然画面が真っ白になる現象(ホワイトスクリーン)を防ぐことができます。
3. error_reportingでエラーを表示する
error_reportingは、PHPのエラーを「表示する・しない」を決める設定です。初心者のうちは、すべてのエラーを表示する設定にしておくと勉強になります。
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "PHPのエラー表示テスト";
?>
この設定をすると、PHPの文法ミスや間違いが画面に表示されます。エラーは敵ではなく、先生のような存在です。
4. エラーを表示しない設定も重要
実際のWebサイトでは、エラーをそのまま表示すると危険です。住所や金庫の場所を人に見せるようなものだからです。そのため、本番環境ではエラーを非表示にします。
<?php
error_reporting(0);
ini_set('display_errors', '0');
echo "エラーは画面に表示されません";
?>
PHPのエラーハンドリングでは、「表示する場面」と「隠す場面」を使い分けることが大切です。
5. try-catchとは?
try-catchは、PHPで起きる失敗を事前に受け止める仕組みです。「やってみる(try)」→「失敗したら受け止める(catch)」という流れになります。転びそうになったら手すりをつかむイメージです。
<?php
try {
throw new Exception("エラーが発生しました");
} catch (Exception $e) {
echo $e->getMessage();
}
?>
ここで使われているException(例外)とは、「特別なエラー情報」のことです。
6. try-catchの実用的な例
例えば、数字で割り算をするとき、0で割ると危険です。PHPではtry-catchを使って安全に処理できます。
<?php
try {
$a = 10;
$b = 0;
if ($b === 0) {
throw new Exception("0で割ることはできません");
}
echo $a / $b;
} catch (Exception $e) {
echo $e->getMessage();
}
?>
このようにPHPのエラー処理を入れることで、プログラムが途中で止まらなくなります。
7. error_reportingとtry-catchの違い
error_reportingは「PHP全体のエラー表示設定」、try-catchは「特定の処理だけを守る仕組み」です。家全体の防犯カメラと、金庫の鍵の違いだと考えると分かりやすいです。
PHPのテストとデバッグでは、この2つを組み合わせることで、初心者でも安全に開発できます。
8. PHP初心者がエラーを怖がらなくなる考え方
PHPのエラーは失敗ではありません。「ここを直せば良くなる」というヒントです。プログラミング未経験の人ほど、エラー=ダメだと感じがちですが、実際は成長のきっかけです。
PHPのエラーハンドリング、try-catch、error_reportingを理解することで、エラーは味方になります。