1

私たちのソフトウェアのエントリ ポイント (フロント コントローラー) は、例外をキャッチする try catch ブロックにラップされ、わかりやすいエラー ページを表示するための PHP ファイルが含まれ、例外についてメールで通知されます。これは完全に機能しますが、HTTP 500 応答を表示するだけの PHP の致命的なエラーが見逃されます。例外と同じ方法でこれらのエラーをキャッチしようとしています。

現時点では、アプリケーションのエントリ ポイントにこれがあります。

try {
    // Register a shutdown handler for fatal errors
    register_shutdown_function(function() {
        $error = error_get_last();

        // Did this request throw an error that wasn't handled?
        if ($error !== null) {
            throw new Exception('PHP fatal error!');
        }
    });

    // ...normal front controller stuff
} catch (Exception $e) {
    // show fancy error screen with debug information
    include 'themes/error/500.php';
}

ここでは、通常の例外処理手順で処理されることを期待して、PHP が致命的なエラーをスローしたときに例外をスローしています。ただし、例外はキャッチされません。

Fatal error: Uncaught exception 'Exception' with message 'PHP fatal error!'

ここでやりたいことをどのように達成できますか?

4

1 に答える 1