2009-03-18 12 views
1

私はエンタープライズライブラリ例外処理ブロックを使い始めました。EntLib 4.0:例外処理アプリケーションブロック

少し煩わしいようです。

私は本当にどこでも、私は例外を処理したい

try 
{ 
    //Do something with a DirectoryInfo object 
} 
catch(DirectoryNotFoundException ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

を行う必要がありますか?

または私はちょうど私が私が属性を持つ側面これが上でした印象の下にあった

try 
{ 
    //Entrypoint code 
} 
catch(Exception ex) 
{ 
    bool rethrow = ExceptionPolicy.Handle(ex, _exceptionPolicyName); 

    if(rethrow) 
     throw; 
} 

のトップレベルをラップする必要がありますか?

答えて

2

例外を処理するにはいくつの場所が必要ですか?

このアプリケーションブロックは、レイヤーの境界で例外を処理するために主に使用されます。たとえば、データアクセスレイヤーの最上位レベルのコードでこれを使用すると、DAL例外を記録するかどうか、DAL以外の例外をラップするかどうかなどを設定できます。しかし、プライベートの内部メソッドはすべて。

いいえ、EALは属性を行いません。

+0

これは良いです、私は問題を解決するために一緒に働く様々なサービスがあります。 ロギングは、実際には私の内部例外の方が関係があります。 私は、例外と多くの種類の例外をスローする傾向のあるファイルとフォルダを扱っています...ありがとうございました。 –

+0

なぜ内部のものが重要か。私はその反対を意味した。サービスおよびレイヤ境界でEABを調整します。あなたのロジックがIOExceptionをラップするような何か違うことをしない限り、低レベルで例外をキャッチしないようにして、ファイル名やその他のコンテキストを追加することができます。 –