PHPには、複数のエラーがあります。
「復旧不能な致命的なエラー」「復旧可能な致命的なエラー」「継続的なエラー」が主役です。
「例外」もいますね。
発生のタイミングで、PHPの起動時やコンパイル時だったり実行時だったり…と複数のパターンがあります。
そして、それをハンドリングするための機構、エラーハンドラーがあります。
更に、エラー制御演算子 @
があります。
こう書いてみると、割と色々なものが入り組んでいるんだな〜と思いませんか?
とはいえ、PHPの経験をある程度積んだアプリケーション開発者であれば、身体で覚えているようにも思います。
しかし、PHPにとって「エラー」って何なのでしょう?
エラーが起きた時に、何が起きて、どういう処理をしているのでしょうか?
@
を付けたら「エラーが出なくなる」、なぜ? 制御の対象はどこまでなのか、どういう挙動の変化があるのか?
PHPの気持ちになって考えてみたいな、と思いませんか・・・・?
そこで、php-srcの読解やPHPコミュニティで公開されている各種ツールの利用により、
「エラーって何だろう」を自分の目で見ていこうと思いました。
本記事は、その調査結果です。
@
の仕事