プログラムが実行されている限り、エラーは避けられません。遅かれ早かれ、それは時間の問題です。
通知、警告などのエラーはよくあります。現時点では、一般に 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 フックを使用してコード構文をチェックします。
時流に乗って、異常を紹介する文章を書く必要がありそうだが、残念ながらもう遅いので寝たほうが良いだろう。
著者ラオ・ワン