PHPでエラーと呼ばれているものまとめ

PHPでエラーと呼ばれているものをまとめてみました。

誰が見てもエラーとわかるもの

Error

<?php
try {
    $a = $b / $c;
} catch (DivisionByZeroError $e) {
    $a = 0;
}

PHP7から導入されたError
オブジェクトとして扱えて、try, catchできます。
便利ですね。

エラー

Fatal error: Call to undefined method Controller::index() in Controller.php on line 6

PHP5おなじみのこれ。
良い子は @error_reporting(0); を使ってはいけませんよ。

Fatal errorParse error のみをエラーと呼ぶ流派もいるそうです。

エラーか微妙なライン

エラー例外

<?php
function exception_error_handler($severity, $message, $file, $line) {
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

自作フレームワークを作ったことがある人なら誰もがとおるアレ

これをエラーと識別するか例外と識別するかは意見が分かれるところ。

できればエラーと呼ばないでほしい

例外

<?php
try {
    $model->save();
} catch(Exception $e) {
    // 握りつぶしてやる!
}

例外はエラーじゃないのよ!   例外とエラーの違いについては色んな記事があるから読んでみるといいかも。

SPL例外みんなもっと使っていきましょ。

Throwable

例外とErrorのインターフェースがThrowableです。
エラーを含んでいますが、エラーじゃないものも含んでいるのです。

思ってたのと違う

trueが返るはずですがfalseが返ってきました。エラーです。

それはエラーじゃない!ただのバグ!

真っ白い画面

何も表示されないんです。エラーです。

たぶんエラーでてると思うけど、レスポンス返してないだけかも。
とりあえずエラーログ出てないか見てみるのと、 display_errorserror_reporting確認してみよ?