多くの例外(明らかにIndexOutOfRangeException)を生成するコードブロックがあります。それは50,000/secまで発生する可能性があります。彼らは捕まえられるが、CPUは本当に急上昇する。コードブロックはIDataRecordで列を単にチェックします。ブロックは非常に一般的ですが、列が存在しない場合は例外がキャッチされ、ブール値が返されます。.NET例外が多すぎます
例外の数ではない場合、これは問題ではありません。私がこれを修正すると考えることができる唯一の方法は、IDataRecordの列を繰り返して処理する前に列があるかどうかを確認することですが、これは非常に高いトラフィックのアプリケーションであるため、任意の列にアクセスする前にこのループを作成してください。
私はちょうどいくつかの考えを探しています。
コードを修正してください。 'IndexOutOfRangeException'はあなたが見たことのない例外の1つです! – leppie
例外を扱うことは正しいアプローチではありません。なぜこれらの例外がスローされているのかに集中することをお勧めします。例外処理は無料ではなく、そのボリュームは軽量ではありません。このタイプの例外は、ほとんどの場合避けられます。 –
最初に、それを処理するよりも例外を防ぐのが通常何百回も安くなります。第2に、存在しないインデックスにアクセスすることは*バグです。プログラムロジックは単に間違っています。すきま穴の上に壁紙を続けないでください。穴を固定します。 –