2011-01-05 8 views
0

私はいつもVisual StudioとC#では未処理の例外がプログラムの終了を招くと常に考えていました。今私は続けることができることを知っている。また、アプリケーションがデバッグモードで実行されているときに、プログラムがデプロイされている間に(または実行可能ファイルを作成するときにどのように呼び出されるのか)、未処理の例外を「スキップ」できます。デバッグモードでのC#例外と実数

+0

処理できない例外的な状況(未処理の例外)が発生した場合、なぜ処理を進めたいのですか? –

+0

これは、WinformsまたはWPFアプリケーションには当てはまりません。または、Debug + ExceptionsダイアログでThrownチェックボックスにチェックを入れたとき。あなたの質問をよりよく記録してください。 –

+0

申し訳ありませんが、私は例外を払拭したくありません。私は私が私の前提に合っているかどうかだけを知りたいと思う。 – Loj

答えて

0
catch(Exception ex) 
{ 
    #if DEBUG 
    Console.WriteLn("oops") 
    #else 
    throw 
    #endif 
} 
+2

元のスタックフレームを維持したい場合は、 "スロー"にする必要があります。 –

0

私はあなたが読むためにのためにこれらの記事は有用であろうと思う:

Exception Handling (MSDN)
Handling and Throwing Exceptions (MSDN)

あなたのための最良の合うものを決定後、基本を把握する方が良いでしょう。

+0

ありがとうございます。私は例外を処理する方法を理解しています。私は、なぜ例外が発生したら(少なくとも)コンソールアプリケーションで続けることができるのか不思議です。私はそれが終了すると思った。 – Loj

0

例外は予期せぬことが発生したことを意味します。アプリケーションが応答する方法を知らない場合、アプリケーションはクラッシュします。

try catch finallyのような構造を持つ理由は、アプリケーションが予期しない問題を認識し、そのような場合に対処する方法です。

例外処理を正しく実装すると、はアプリケーションが常にスムーズに実行されます。それは終了するかもしれませんが、それでも突然ではありません。