あなたが探しているのは ですErrorException
。
次のようにエラー ハンドラを登録できます。
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");
そしてエラーをキャッチします:
try
{
echo $a; //Use of undefined variable
}
catch (ErrorException $e)
{
echo $e->getMessage();
}
しかし、php でも他の言語でも、構文エラーを例外として処理することはできません。実際に php スクリプトを実行すると致命的なエラーが発生するのは、php が解釈されるためです。任意の php コンパイラで php スクリプトをコンパイルしようとすると、コンパイル時に構文エラーが発生します。
致命的なエラーが発生したときにログなどを追加したい場合は、シャットダウン機能を登録できます (を使用register_shutdown_function
):
register_shutdown_function( "MyShutDownHandler" );
function MyShutDownHandler() {
//Do something here.
}