The Microsoft Enterprise Library の Exception Handling Application Block の最新バージョン (4.1、2008 年 10 月リリース) には、2 つの HandleException() メソッド シグネチャがあり、これらの意図が少しわかりません。も、QuickStart アプリも意味のある違いを暗示していません。
以下に 2 つの署名を示します。
bool HandleException(Exception exceptionToHandle, string policyName);
bool HandleException(Exception exceptionToHandle, string policyName, out Exception exceptionToThrow);
私が見つけたすべての例は、最初の例を使用しています。この例では、実際のメソッドに関する XML ドキュメントのコメントから直接引用しています。
try
{
Foo();
}
catch (Exception e)
{
if (ExceptionPolicy.HandleException(e, name)) throw;
}
同じソース (メソッドの XML ドキュメント コメント) から、2 番目の使用例を次に示します。
try
{
Foo();
}
catch (Exception e)
{
Exception exceptionToThrow;
if (ExceptionPolicy.HandleException(e, name, out exceptionToThrow))
{
if(exceptionToThrow == null)
throw;
else
throw exceptionToThrow;
}
}
ですから、私の質問は、最初のものでは得られないもので、2 番目のものを使用すると何が得られるのでしょうか? これはおそらく私には明らかなはずですが、今日の私の頭は混乱しており、ことわざの壁に頭をぶつけ続けたくありません. :)
憶測はご遠慮ください。これを使用した経験から、彼らが何を話しているのかを実際に知っている人からの連絡をお待ちしています.