1

C#のSystem.Diagnostics.Processオブジェクトを使用して、アンマネージexeを起動し、後でさらに別のアンマネージexeを起動します。

2番目のexeが未処理の例外を引き起こしています。これは、アプリケーションで無視したいのですが、無視できないようです。

最初のプロセスを開始するときにtry/catchステートメントを使用していますが、2番目のプロセスによって発生した例外をキャッチしていないようです。例外が発生すると、ジャストインタイムデバッガーが通知し、デバッグする「はい」または「いいえ」を手動でクリックするまでアプリケーションを停止します。その後、私のアプリケーションが続行されます。

JITデバッガーには、例外をスローしている2ndprocess.exeのソースコードがありません。だから、それは私に例外が何であるかを教えてくれません。例外が何であるかはあまり気にしません。アプリケーションが停止しないように、例外をキャッチして無視する方法を知りたいだけです。例外が発生するまでに、とにかく作業は完了します。

誰かがいくつかの洞察を提供できますか?

4

2 に答える 2

1

process.startを使用して実際にアプリケーションを起動しているため、アプリケーションは別のアプリケーションドメインを作成します。そのアプリケーションから例外をキャプチャすることは、おそらく可能であると私が信じていることではありません。なぜなら、その失敗したプロセスのためにJITダイアログが表示される可能性が高いからです。

解決策ではありませんが、必要に応じてダイアログを停止することもできますが、それには独自の問題があります。

于 2010-01-27T21:28:43.227 に答える
1

2番目の実行可能ファイルで例外を適切に処理する必要があります。メインプログラムは例外をスローしていないため、例外をキャッチしません。例外を実行しています。

編集:

2番目のプロセス(例外をスローするプロセス)のソースにアクセスできますか?アプリケーションがクラッシュするだけではいけません。2番目のプロセスで例外的なケースが正しく処理されれば、プライマリアプリケーションでこの問題は発生しません。

Edit2:

ソース(オープンソース)にアクセスできるので、バグを修正することをお勧めします。これは2つの方法で役立ちます。

1)あなたのプログラムはついに機能します。
2)オープンソースプロジェクトに貢献したと言えます。

そして、特別なボーナスとして、あなたはあなたが頻繁に使うプロジェクトを手伝うことができます。Win / Win

于 2010-01-27T21:29:55.123 に答える