スローvs.スロー例外:ネストされた例外ハンドリングの際立った違い
例外処理の領域では、「スロー」の違いの違いネストされた例外処理方法を使用すると「スローEx」が明らかになります。ブロック、「スロー」は、スタックトレースを変更せずに元の例外をreります。これは、例外が最終的に最も外側のトライキャッチブロックによって処理されると、元のスタックトレースを保持し、例外が発生する正確な位置を示します。スタックトレース。 「スローEx」がネストされたトライキャッチブロック内で呼び出されると、スタックトレースは、例外の元のソースではなく、ネストされた方法に由来するように変更されます。 >
この区別は、エラーレポートに不可欠です。目標が例外の起源の詳細なレポートを提供することである場合、「スロー」を使用して元のスタックトレースを保存する必要があります。ただし、ネストされた方法で例外を処理し、最も外側のトライキャッチブロック内で実行を継続することを意図している場合、「スローEX」を使用して、元のスタックトレースが発信者に伝播するのを防ぐことができます。 例
次のコードを検討してください。最も外側のトライキャッチブロックで報告されているのは、方法1ではなく方法2から発生します。これは、「スローEX」がスタックトレースをリセットするためです。ただし、代わりに「スロー」が使用される場合、元のスタックトレースが保存され、例外が方法1から発生したことを示します。以上がスロー対スローEx:ネストされた例外処理はスタックトレースにどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。