ホームページ  >  記事  >  バックエンド開発  >  神様、助けてください。どうすれば例外処理コードを実行できなくなりますか?

神様、助けてください。どうすれば例外処理コードを実行できなくなりますか?

WBOY
WBOYオリジナル
2016-06-13 13:06:371030ブラウズ

エラー処理コードが実行されない理由を誰かが教えてくれませんか?

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php

//定义Error_Handler 函数
/** * 定义Error_Handler 函数
 * * * @param $error_level 错误级别
 * * @param $error_message 错误信息
 * * @param $file 错误所在文件
 * * @param $line 错误所在行数
 * * */
//屏蔽程序中的错误
error_reporting (0);
set_error_handler("error_handler");
function error_handler ($error_level, $error_message, $file, $line) {
    echo "11111111111";
}
myerror_method();
?>



上記のコードは、実行する必要がある未定義の関数 myerror_method() を呼び出しています。 me カスタム エラー処理関数 error_handler()
しかし、この文はエコー "11111111111" として実行されません。見てみるのを手伝ってください。ありがとうございます。

-----解決策--------------------------------
存在しない関数を呼び出しています。これは致命的なエラーであり、スクリプトが直接終了します

変数が存在しない場合は、echo $sakdfhgkjad を呼び出します。カスタムエラー処理関数は通常は

ところで:
どうしても致命的なエラーの場合に呼び出すこともできますので、 register_shutdown_function 関数を試してください
------解決策---------
php プログラムの実行には 2 つの段階があります
1. コンパイル前フェーズ: プログラム ファイルの構文解析を完了し、中間コードを生成します
2. 実行フェーズ: 中間コードを実行します

set_error_handler("error_handler");
実行フェーズでは
が実行されるため、プリコンパイルフェーズでのエラーを処理できません。
------解決策---------
話し合う

PHP プログラムの実行には 2 つの段階があります
1. コンパイル前段階: プログラム ファイルの構文解析を完了し、中間コードを生成します
2. 実行段階: 中間コードを実行します

set_error_handler("error_handler");
は実行フェーズ
で実行されるため、プリコンパイルフェーズでエラーを処理できません
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。