例外とは、プログラム動作中の通常のプロセスとは異なる、期待を満たさない状況を指します。 たとえば、データベースに接続し、すべてのパラメータが書き込まれているにもかかわらず、リンクが上昇できないことが判明した場合、これは予想どおりではありません。
エラーとは何ですか?
は、PHP プログラム自体に属する問題です。通常、不正な構文や環境の問題によって引き起こされ、コンパイラーがチェックに合格しなかったり、実行に失敗したりすることがあります。
私たちが通常目にする警告や通知はすべてエラーですが、レベルは異なります。 例:TypeError (型エラー) 指定した関数パラメーターの型は、
ParseError (解析エラー) ロードされたファイルに、include "demo.php" または eval() の構文エラーがあり、解析エラーが発生します
try{ …… }catch(Throwable $e){ …… }
php のエラーにもレベルがあります
>致命的エラー >
衰退>
通知 >非推奨
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="prettyprint">Deprecated 最低级别的错误(不推荐,不建议)
使用一些过期函数的时候会出现,程序继续执行
Notice 通知级别的错误
使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行
E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的情况.
E_USER_NOTICE // 用户产生的通知信息。Waning 警告级别的错误
程序出问题了,需要修改代码!!!程序继续执行
E_WARNING // 运行时警告 (非致命错误)。
E_CORE_WARNING // PHP初始化启动过程中发生的警告 (非致命错误) 。
E_COMPILE_WARNING // 编译警告
E_USER_WARNING // 用户产生的警告信息Fatal Error 错误级别的错误
程序直接报错,需要修改代码!!!中断程序执行,可使用register_shutdown_function()函数在程序终止前触发一个函数
E_ERROR // 致命的运行错误,错误无法恢复,暂停执行脚本
E_CORE_ERROR // PHP启动时初始化过程中的致命错误
E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR
E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)Parse error 语法解析错误
语法检查阶段报错,需要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了
E_PARSE //编译时的语法解析错误</pre><div class="contentsignin">ログイン後にコピー</div></div>
カスタム エラー ハンドラー
PHP に付属のエラー ハンドラーではニーズを完全に満たせない場合があり、ほとんどの場合、例外処理を手動で書き直す必要があります。
php には、エラーの処理に役立つ 3 つの関数が用意されています。つまり、
set_error_handler()
エラーをホストする関数です。エラー処理プロセスをカスタマイズできます。 この関数の前のコードでエラーが発生した場合、カスタム処理関数はまだ登録されていないため呼び出されません。この関数を設定すると、error_reporting() は無効になります
error_get_last()
と連携する必要があります 最後に発生したエラーを取得できます。 举例 register_shutdown_function('shutdown');function shutdown(){ if ($error = error_get_last()) { var_dump($error); } }$name //没写 ; 号
実は、その理由は、プログラムを実行する前に、PHP がまずプログラムの構文の問題をチェックし、問題がなければプログラムを実行できるからです。
それでは質問が来ますか?私たちがフレームワーク内にいるとき、なぜフレームワークは常にエラーを報告するのでしょうか? フレームワークのエラー処理
になる可能性があります。
以上がphp7の例外・エラー処理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。