ユーザーが次のようなエラーを報告するたびに
System.Runtime.InteropServices.SEHException-外部コンポーネントが例外をスローしましたか?
プログラマーとして私が原因を特定するためにできることはありますか?
シナリオ:1人のユーザー(私の会社が作成したプログラムを使用)がこのエラーを報告しました。これは1回限りのエラーである場合とそうでない場合があります。彼らは先月、コンピューターが2回「動作を停止」したと述べた。私は経験から、この説明を文字通りに解釈しないことを学びました。これは通常、コンピューターに関連する誰かが期待どおりに機能していないことを意味します。彼らは私にそれ以上の詳細を与えることができず、私は記録されたエラーを見つけることができませんでした。したがって、このエラーである場合とそうでない場合があります。
スタックトレースから、実際のエラーは、相互運用コードを直接呼び出さないクラスを構築するときでしたが、オブジェクトがDevExpressグリッドにデータバインドされたリストの一部である可能性があるという事実によっておそらく複雑になりました。
エラーは、通常はプログラムを終了する未処理の例外ルーチンによって「キャッチ」されましたが、無視して続行するオプションがあります。エラーを無視することを選択した場合、プログラムは引き続き機能しますが、このルーチンが次に実行されたときにエラーが再発しました。ただし、アプリケーションを閉じて再起動した後、再び発生することはありませんでした。
問題のコンピュータはストレスがたまっていないようでした。Vista Businessを実行しており、2 GBのメモリがあり、タスクマネージャーによると、アプリケーションではその約半分しか使用していませんでした。
関連する場合と関連しない場合がある情報がもう1つあります。同じプログラムの別のセクションでは、ネイティブdllのドットネットラッパーであるサードパーティコンポーネントを使用していますが、このコンポーネントには既知の問題があり、非常にまれに
保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています
コンポーネントメーカーによると、これは社内で使用しているコンポーネントの最新バージョンで修正されているとのことですが、まだお客様に提供されていません。
エラーの影響が少ないこと(作業が失われることはなく、プログラムを再起動して元の場所に戻るのに最大で1分しかかからない)、および顧客がまもなく新しいバージョンを取得することを考えると(3番目に更新された-パーティーコンポーネント)、私は明らかに私の指を交差させることができ、エラーが二度と起こらないことを願っています。
しかし、私にできることは他にありますか?