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 error
と Parse 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_errorsとerror_reporting確認してみよ?