PHP は解析エラーをキャプチャできませんでしたか?
漂亮男人
漂亮男人 2017-05-16 13:00:20
0
3
418

コードは次のとおりです。登録されたエラー処理関数 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 は意図的に書き込まれましたが、例外が処理されなかったのはなぜですか?

漂亮男人
漂亮男人

全員に返信(3)
洪涛

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

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

リーリー
いいねを押す +0
PHPzhong

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

いいねを押す +0
迷茫

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

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート