Fatalエラーのエラーハンドリング


 悩み事

Fatalエラー処理を独自に実装したい

 解決方法

App::fatal()を使ってハンドラーを登録します

これはFatalErrorExceptionをインターセプトします。
このエクセプションは具体的には
Symfony\Component\Debug\Exception\FatalErrorExceptionがスローされます

\App::fatal(function($exception) {
    die('FATAL ERROR: '.$exception->getMessage());
});

 アドバイス

Fatalエラー例外処理には注意が必要です。

動作しない場合、いくつかの考えられる原因があります:

  • php.inidisplay_startup_errors がonになっていない
  • Laravelの基盤となるコアクラスなどでエラーが発生している
  • エラーを100%処理するのは様々な要因があり、難しい場合がある

E_ERROR,E_CORE_ERROR,E_COMPILE_ERROR または E_PARSE
これらのFatalエラーはPHPの設定で定義されています

未定義の例外が原因でアプリケーションが終了した時に、
LaravelはFatalエラーをスローします


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa