あなたがして、ラムダのをラップするヘルパーメソッドのセットを作成することができます: -
public static class Helper
{
public static AsyncCallback GetAsyncCallback(Action<IAsyncResult> inner)
{
return (a) =>
{
try
{
inner(a);
}
catch (Exception err)
{
// Your handling for "uncaught" errors
}
};
}
public static Action GetAction(Action inner)
{
return() =>
{
try
{
inner();
}
catch (Exception err)
{
// Your handling for "uncaught" errors
}
};
}
public static Action<T> GetAction(Action<T> inner)
{
return (a) =>
{
try
{
inner(a);
}
catch (Exception err)
{
// Your handling for "uncaught" errors
}
};
}
// and so on also:-
public static Func<T> GetFunc(Func<T> inner;)
{
return() =>
{
try
{
return inner();
}
catch (Exception err)
{
// Your handling for "uncaught" errors
}
};
}
public static Func<T1, TReturn> GetFunc(Func<T1, TReturn> inner;)
{
return (a) =>
{
try
{
return inner(a);
}
catch (Exception err)
{
// Your handling for "uncaught" errors
}
};
}
}
今、あなたは、デフォルトの定型例外処理を気にすることなく、ラムダのをラップすることができます: -
this.Context.BeginSaveChanges(Helper.GetAsyncCallback((ar) =>
{
// Only needs specific exception handling or none at all
}), null);