検索

ホームページ  >  に質問  >  本文

PHP は解析エラーをキャプチャできませんでしたか?

コードは次のとおりです。登録されたエラー処理関数 register_shutdown_function は実行されません。これは非常に奇妙です。

<プリ><コード> エラー報告(-1); ini_set('display_errors', 1); set_error_handler(function(){ echo "エラーハンドラを実行"; }、E_ALL); set_Exception_handler(function(){ echo "例外ハンドラーの実行"; }); register_shutdown_function(function(){ echo "シャットダウン関数を実行"; }); 試す{ 0$a; }catch(例外 $e){ エコー「例外をキャッチ」; }ついに{ エコー「最後に」; }

実行結果:

<プリ><コード> 解析エラー: 構文エラー、C:\Users\mao\Documents\php\index.php の 18 行目に予期しない '$a' (T_VARIABLE) PHP 解析エラー: 構文エラー、C:\Users\mao\Documents\php\index.php の 18 行目に予期しない '$a' (T_VARIABLE) [0.1秒で完了]

0$a は意図的に書き込まれましたが、例外が処理されなかったのはなぜですか?

漂亮男人漂亮男人2779日前447

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-05-16 13:02:20

    PHP7 の try{}catch(Error){} を試すことができます

    http://php.net/manual/en/clas...

    リーリー

    返事
    0
  • PHPz

    PHPz2017-05-16 13:02:20

    構文エラーはシステムによって最初に警告されるものであり、システムが警告するとすぐに、プログラム全体が実行されることはありません。

    返事
    0
  • 迷茫

    迷茫2017-05-16 13:02:20

    まず第一に、例外とエラーは異なるものであることを理解する必要があります。一方、エラーは実行時のエラーを指します。エラーが発生すると、コード全体が実行されなくなり、プログラムがハングします。例外が発生した場合は、try catch を使用して例外をキャッチすることができ、プログラムは実行を続行できます。

    明らかに、コードには構文エラーがあるため、このプログラムはまったく実行できません。これは、例外ではなくエラーが発生したことを意味します。では、望む効果を達成するにはどうすればよいでしょうか?まず構文の問題を解決する必要があります。以下のコードを見てください

    リーリー

    返事
    0
  • キャンセル返事