2016-06-27 9 views
2

をログに記録する方法私は私のコードでこれをたくさん持っている:例外をスローし、それを

if (labelType == null) 
{ 
    var errorMessage = "Invalid Label Type Id Look up: " + labelTypeId; 
    log.Error(errorMessage); 
    throw new ApplicationException(errorMessage); 
} 

私はこのような何かをしたいと思います:

FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId); 

そしてFail方法でしょう上記のロジックをカプセル化します。

しかし、その混乱は制御論理を流します。コンパイラはもはや私が例外をスローしていることを認識しません。

このコードを凝縮する別の方法はありますか? (コンパイラのフロー解析で動作します)

答えて

8

ロガーメソッドが例外を返すようにします。

あなたは、あなたが(あなたのメソッドがvoidを返す場合は特に)呼び出し場所でthrowを追加するのを忘れた場合、あなたの例外は黙って破棄されることを

throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId); 

ノートを書くことができます。
これを助けるには、throwのメソッドも例外なく作成できます(ただし、コールサイトでthrowと書くことができます)。

+0

完全に作業しました。ありがとう! – Vaccano

関連する問題