2010-12-30 5 views
2

Exceptionを気にせず、再開する必要がある場合もあります。私はそれが副作用を知っていると...例外を無視するためのベストC#構文

をここに私の質問は、例えば、exceptionを無視するための最良のC#構文についてです:

try 
{ 
    // exceptional code 
} 
catch { } 

が、これはcatch後少し醜い特別にその空のブラケットを思わ。より洗練された構文がありますか?

+1

ええ、それを飲み込む理由を説明するコメントを追加してください。 – BoltClock

+0

それは私がしていることです。私はあなたがそれをよりエレガントにする方法を見ません。 –

+0

さて、少なくともキャッチブロックにトレースを追加してください。 –

答えて

1
おそらく

ない最良のルートがありますが、もう少し説明的であることをこれを行うことができます:

try 
{ 
    // exceptional code 
} 
catch (Exception ex) 
{ 
} 

しかし、私は空の括弧は、将来的にこれを維持している誰に同じメッセージを伝えると思います。

あなたの例外的なコードをリファクタリングする方が良いでしょう。例外を無視している場合は、より良い方法で実行できる可能性があります。

+2

'try'ブロックがループ内にある場合、' continue'はループ制御文になりませんか?それでは、構文エラーですか? –

+0

これは本当です。いい視点ね。 – karlgrz

+0

私は最後の行にも完全に同意しません。時には(まれに私は認めます)正直に気にしないで、あなたは安全に過去の例外を通過することができます。つまり、私は今まで生産コードでそのようなことを思いついたことはなく、内部のものだけを思い出しました。 –

2

うん...私は、2つのブレース(あなたがコメントではないほど多くの例外を飲み込んでいるという事実)については、 "控えめな"ものはないと思う。あなたは心配するより良い問題がなければなりません。

+2

*あなたが気にするより良い問題があるはずです*。 +1 –

4

空のcatchのような文は決して使用しないでください。コードにエラーがあり、気づかずにコードにエラーがあるだけでなく悪いです。

あなたが本当に例外をキャッチし、それらを無視し、無視する例外のタイプのみをキャッチし、それを無視する理由についてのコメントを追加しようとする場合:

try { 
    // exceptional code... 
} catch(FormatException) { 
    // A comment describing why on earth you are cathing 
    // an exception and ignoring it. 
} 
0

私は大会を考えます通常は例外を無視するときに、特定の型の例外を無視し、少なくともSystem.Exceptionの処理を提供しています。いずれにしても、対応する例外が無視されている理由をキャッチして文書化します。

try { 

    ... exceptional code 

} catch (InvalidOperationException ex) { 
    // This exception can be ignored because .. 
} catch (Exception ex) { 
    ... error handling code 
} 
0

あなたはすぐに 'オン' のキーワードの後に​​リストされている上での処理を実行するためのリンクから

ソースの例外をSpring.NET AOP

Exception Handler Advice

の抜粋を使用してすることができますカンマ区切りにすることができます。それに続いて、ログ、翻訳、折り返し、置き換え、返却、またはswallowを実行するアクションがあります。

関連する問題