2017-07-20 5 views
2

簡単な答えを求める簡単な質問です。デモンストレーションとしてコードは必要ありません。関数を呼び出すと、例外が返され、関数全体が停止します。例外を無視して機能を継続するにはどうすればよいですか?キャッチして続行しますか? C#

+0

ちょうどそれをキャッチですか?私はコードがここで必要かもしれないと思う。 – Carcigenicate

+0

この質問とその回答が参考になる場合があります。 https://stackoverflow.com/questions/4913159/ignore-exception-in-c-sharp –

答えて

0
try 
{ 
    MyFunctionThatErrors(); 
} 
catch{} 
0

try { 
    // your code that might throw an exception here 
} catch { 

} 
// code here will execute even if there is an exception 

しかしは、...してみてくださいcatch文は、フロー制御文として動作するように設計されていません。正当な理由がなくても例外を無視してはいけません。最初にスローされる例外は避けるべきです。

たとえば、文字列パラメータの形式が間違っていると、Convert.ToInt32は例外をスローできます。無効なユーザー入力を検出する方法として、try ... catchを使用しないでください。例えば正規表現のような他の方法を使って入力が有効かどうかを調べるべきです。

3

例外は無視できません。

キャッチしないと、誰かがキャッチして処理するか、呼び出しスタックの先頭に到達してプログラムが停止するまで、例外が呼び出しスタックを伝播します。

これを回避するには、単に例外をキャッチし、それを処理する方法を決定するだけです。取り扱う場合、それはあなたが例外をキャッチしたときに、それは、単に...何もしない何もしないことを意味:

try 
{ 
    SomeFnWhichThrowsAnException(); 
} 
catch 
{ 
    // NO-OP 
} 

(「ノーオペレーション」の短い)// NO-OPコメントは、私は、「取扱いることを示すために使用する指標であり、例外的にに故意には何もせず、将来suhコードを読んでいる誰かの潜在的な誤解を避け、空のcatchブロックをエラーや見落としとして解釈します。

例外に応答して何もしないコメントと「正当な理由」があっても、これは非常に疑わしく、非常に悪いコードの匂いです。

(これは、スタックオーバーフローなどまたはメモリのうち、例外が含まれることを考慮し、具体的に非常に特定の例外を無視するか、特定の状況でそうすることが、すべての可能性を除いは非常unadvisableあるを無視することがより一般的かもしれ条件など)。

関連する問題