異常な治療では、正しいエラー追跡と回復を確保するために、ベストプラクティスを順守することが不可欠です。考慮すべき1つの側面は、異常な異常を再投与するときに元の異常を保持するインセックスとスタック追跡です。
次の2つのコードブロックを検討してください:
一見すると、これらの2つのコードブロックは似ているようです。ただし、わずかな違いがあります。最初のコードブロックは、キャプチャ異常を再び表示し、インセックスとスタックの追跡が保持されるようにします。 2番目のコードブロックは、略語「スロー」を使用します。これにより、現在のスタック追跡がカバーされます。
<code class="language-csharp">try { //某些代码 } catch (Exception ex) { throw ex; // 这种方式会保留原始异常信息,但会丢失调用堆栈信息的一部分 }</code>
<code class="language-csharp">try { //某些代码 } catch (Exception ex) { throw; // 这种方式会保留完整的调用堆栈信息 }</code>
または、次の形式を使用して、異常とその元のスタック追跡を再投げることができます:
異常を再投与する際に、元の異常をパラメーターとして渡すことは良い習慣であることに留意してください。これにより、追加情報を広めることができ、デバッグが役立ちます。 より推奨される方法は、完全なスタック追跡情報を保持するために
ではなくを使用することです。 異常な異常を再投与するときに追加のコンテキスト情報を追加する必要がある場合は、新しい異常なオブジェクトを作成し、元の異常を<code class="language-csharp">try { // 这里发生错误的代码 } catch (Exception ex) { throw; // 保留完整的堆栈跟踪 }</code>
以上が.NETで例外を再スローするときにスタックトレースとInnerExceptionを保持する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。