Можно ли написать метод наподобие outType? TryDo(func, out exception, params)
, который вызывает func(arg1,arg2,arg3,...)
, в параметрах которого содержится arg1,arg2,arg3,...
, а затем он возвращает возвращаемое значение func, а в случае возникновения какого-либо исключения возвращает ноль и устанавливает исключение?
Можно ли сделать это лучше с помощью другой сигнатуры функции?
, например, у меня есть string Foo1(int i) { return i.ToString()}
void Foo2(int[] a) {throw new Exception();}
, а затем вызовите
string t = TryDo(Foo1, out ex, {i});
TryDo(Foo2, out ex, {});
----------- Отредактировано ------------------
string t;
SomeClass c;
try
{
t = Foo1(4, 2, new OtherClass());
}
catch (Exception ex)
{
Log(ex);
if (/*ex has some features*/)
throw ex;
}
try
{
Foo2();
}
catch (Exception ex)
{
Log(ex);
if (/*ex has some features*/)
throw ex;
}
.
.
.
Я хочу сделать это так.
string t = TryDo(Foo1, out ex, {4, 2, new OtherClass());
Examine(ex);
SomeClass c = TryDo(Foo2, out ex, {});
Examine(ex);