ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでのエラー処理

PHP_PHP チュートリアルでのエラー処理

WBOY
WBOYオリジナル
2016-07-13 17:51:36835ブラウズ

プログラムが実行されている限り、エラーは避けられません。遅かれ早かれ、それは時間の問題です。
通知、警告などのエラーはよくあります。現時点では、一般に set_error_handler を使用して以下を処理します:

set_error_handler(function($errno, $errstr, $errfile, $errline) {
var_dump($errno, $errstr, $errfile, $errline);
});

// 注意: 未定義の定数 strlen の使用
ストレン;

// 警告: strlen() は、パラメーターが 1 つだけ必要ですが、指定されたパラメーターは 0 です
strlen();

?>
具体的に何ができるのでしょうか?エラーログを一元管理したり、比較的分かりやすいエラープロンプトページを表示したりする。
ただし、set_error_handler は次のエラーなどの特定の致命的なエラーをキャッチできないことに注意してください:

set_error_handler(function($errno, $errstr, $errfile, $errline) {
var_dump($errno, $errstr, $errfile, $errline);
});

// 致命的なエラー: 未定義関数の呼び出し undependent_function()
未定義_関数();

?>
しかし、本当に私たちにできることはないのでしょうか?もちろんそうではありません。メソッドがあるだけでなく、いくつかのメソッドもあります:
最初のもの: ob_start + error_get_last

ob_start(関数($buffer) {
If ($error = error_get_last()) {
return var_export($error, true);
}

$buffer を返す;
});

// 致命的なエラー: 未定義の関数 undependent_function() への呼び出し
未定義_関数();

?>
2 番目のタイプ: register_shutdown_function + error_get_last

register_shutdown_function(function() {
If ($error = error_get_last()) {
var_dump($error);
}
});

// 致命的なエラー: 未定義の関数 undependent_function() への呼び出し
未定義_関数();

?>
また、すべての Parse エラーをキャッチすることはできませんが、別の観点から見ると、Parsing エラーのコード自体を公開する必要はなく、さらにはリポジトリに入るべきではありません。これについては、Learn how を紹介する記事「Subversion Hooks」を以前に書きました。 Subversion フックを使用してコード構文をチェックします。
時流に乗って、異常を紹介する文章を書く必要がありそうだが、残念ながらもう遅いので寝たほうが良いだろう。

著者ラオ・ワン

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478184.html技術記事プログラムが実行されている限り、エラーは避けられません。遅かれ早かれ、それは時間の問題です。 通知、警告などのエラーはよくあります。この時、一般的にset_error_handleが使われます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。