1

重複の可能性:
PHP の致命的なエラーをキャッチするにはどうすればよいですか

カスタム エラー ハンドラを作成したいのですが、PHP はそれを無視し、組み込みのエラー ハンドラを使用しています。以下の例では、test() が定義されていないため、組み込みの致命的なエラーが発生します。

 function critical_error($error_number,$error_string,$error_file,$error_line,$error_context) {
     echo "<strong>error:</strong> echo ".$error_string;
     exit();
 }

 set_error_handler("critical_error",8191);
 test();
 exit;

何かアドバイス?

4

1 に答える 1

5

エラーレベルの定義が間違っている可能性があります。使用してみてください:

set_error_handler("critical_error", E_ALL);

また、次の点にも注意してください。

次のエラー タイプは、ユーザー定義関数では処理できません: E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING、および set_error_handler() が呼び出されるファイルで発生するほとんどの E_STRICT。

しかし、完全なスクリプト (を含むtest()) がなければ、それを判断するのは困難です。ローカル サーバーでテストしたところ、すべて正常に動作しました。

于 2012-12-19T08:47:53.820 に答える