私はC#アプリケーションを持っています..私は継続的にnull参照例外を受け取ります..私はこの例外をキャッチしてログに記録することができます..しかし、この例外が私のアプリケーションのパフォーマンスに影響を与えるかどうかは疑わしいです..私はしようとしていないことに注意してください代わりに例外を回避します。この例外が継続的に発生した場合に、この例外がアプリケーションのパフォーマンスに影響を与えるかどうかを知る必要があります。
4 に答える
を取得している場合は、キャッチするのではなく修正するNullReferenceException
必要があります。修正できない方法でコード内で発生した場合にのみ、それをキャッチする必要があります(たとえば、壊れたサードパーティライブラリ)。Aは常にどこかのプログラミングエラーを示します。NullReferenceException
パフォーマンスに関しては、「継続的に」の意味によって異なります。例外は、何も問題がないときにスローされた場合、ひどく高額になる可能性があります。適切に使用すれば問題ありません。たとえば、1秒間にいくつ見ていますか?デバッガーで実行する場合、例外は、デバッガーが接続されていない場合よりもはるかに高価になることが多いことに注意してください。
相変わらず、パフォーマンスが心配な場合は、パフォーマンスをテストする必要があります。そうすれば、ハードデータを使用して意思決定を行うことができます。
例外を処理する場所と発生頻度によって異なります。例外とパフォーマンスに関するCodeProjectに関する優れた記事がありますので、ぜひお読みください。
はい、それはそれの頻度に依存してそれに影響を与えます。
詳細については、リンクを参照してください。リンクも役立つ場合があります
例外は、スローされないときにパフォーマンスを最小限に変更するように設計されています。try/ catchブロックを追加しても、アプリケーションのパフォーマンスへの影響は非常に限定されます。したがって、適切なレベルで例外をキャッチするために必要な数のtry/catchブロックを追加することをお勧めします。
ただし、例外をスローしてキャッチすると、非常にコストがかかる場合があります。アプリケーションはコンテキストを切り替え、ブロックを使用する際に要素を破棄する必要があります...そしてそれが私が@Ramhoundに同意する理由です:例外をキャッチするのではなく修正する必要があります。