2012-04-17 9 views
-1

すべてのマネージコードを使用してWindows 7 32ビットマシンでVisual Studio 10にシンプルなコンソールアプリケーションを作成しました。これは、デバッグモードで正常に動作しますが、私は別のマシンに展開し、それを実行したとき、私はメッセージを取得し、try-catch not trapping exceptions

[my assembly] has encountered a problem and needs to close. We are sorry for the inconvenience. 

を...そしてそれは私が便利見つけ想像することができないという不可解なエラーレポートを生成します。ここでは、例外が正常にエラーを処理するように設計されているtry-catchステートメント内で発生しています。例外は捕まえられていないようです。

これはどのようにすることができますか?どうすれば修正できますか?

+2

キャッチで何をしていますか? Catch句に別のエラーが発生している可能性があります。 – Servy

+2

1)エラーを共有できますか?2)イベントログをチェックしてエラーがあり、それを共有していますか? –

+0

すべてのコードをtry catchで囲み、例外がスローされている場所を見つけます。 –

答えて

2

例外がコードでdiferent場所からスローされた、またはあなたがキャッチ支店

「不可解」エラーメッセージに特定の例外の型(またはその親タイプのいずれか)をリストしていないのどちらか実際に何が間違っているのか(例外のタイプ)、どこで発生したのか(スタックトレース)を見つけるのに役立つように設計されています。

+0

コメントでなければなりません。 – Pankaj

+0

...何らかの理由で、StackOverflowExceptionのような捕捉不能な例外が発生します。 –

+0

@PankajGarg - 理由を説明できますか? OPの詳細レベルでは、これは合理的な答えだと思います。 – Attila

1

アッティラが言ったように、おそらく別の場所からスローされていると言えます。タイプはExceptionに設定する必要があります。一般的なので、エラーがスローされていると思われる場合は、そのキャッチで確実に終了します。問題が理解されたら、より具体的なタイプに調整することができます。

また、正常に処理する代わりに、エラーメッセージをコンソールに出力して、問題の内容を確認してください。

キャッチされていない場合は、tryの内部からスローされていない場合は、問題のコードがすべてラップされていることを確認してください。

+0

一般的な「例外」キャッチは、メモリ不足の例外のような例外をキャッチすることができます。 – Attila

+0

はいそうです。私の考えは、それが捕捉されていることを確認してから、問題をゼロにするためにエラーを出力し、それに応じて例外タイプを変更して特定の問題を処理します。 – PaulG

関連する問題