C# での障害処理を改善するためにネットを閲覧したところ、次のような実装戦略を見つけました。最初のものは私にとって自然ですが、他の実装はその利点が何であるか確信が持てませんか?
1)
static void Fault(Action protectedBlock, Action faultHandler)
{
try
{
protectedBlock();
}
catch
{
faultHandler();
throw;
}
}
2)
static Action Fault(Action protectedBlock, Action faultHandler)
{
return () =>
{
try
{
protectedBlock();
}
catch
{
faultHandler();
throw;
}
};
}
C# で高次関数を開発する場合、2) は優先される戦略ですか?
そして、あるアプローチが他のアプローチよりも効率的かどうか疑問に思っています。