0

通知を例外に変換したかったのです。Web サイト全体を try-catch ブロック内に配置しました。(try ブロック内の) 各エラーは、新しい ErrorException をスローする set_error_handler() メソッドを呼び出します。次に、例外がキャッチされ、適切なメッセージが表示されます。

次にすべきことは、try ブロック内の E_NOTICE の後のすべてを実行することです。次のエラーが発生すると、try ブロックが終了するまで、すべてが同じように繰り返されます。

ただし、例外がキャッチされた後、try ブロックが壊れているようです。

これをどのように処理しますか?

4

1 に答える 1

2

例外がスローされた時点で、実行はtryブロック内で停止します。例外(またはすべての例外)に一致するキャッチがある場合、そのブロックが実行されます。その時点で、プログラムはキャッチ後も続行します(これがプログラムの終わりである場合、プログラムは終了します)。tryセクション内で中断したところから再開できません。

例外をスローすることは、キャッチされるポイントまでは回復できません(キャッチされている場合)。それから回復したい場合は、コードを再開したいポイントの前のポイントでそれをキャッチする必要があります。したがって、サイト全体に1つではなく、複数の試行/キャッチが必要です。または、各E_NOTICEで例外をスローしないでください。そもそもなぜ通知で例外を生成したいのか聞いてもいいですか?あなたがそれでやろうとしていることを達成するためのより良い方法があるかもしれません。

于 2012-11-29T20:31:46.780 に答える