Звучит так, как вы хотите:
TResult ExceptionalMethod<TSource, TResult>(Func<TSource, TResult> func,
TSource input)
{
try
{
return func(input);
}
catch(ExceptionType1) {}
catch(ExceptionType2) {}
catch(ExceptionType3) {}
return default(TResult);
}
Однако вам также следует пересмотреть перехват исключений и их проглатывание следующим образом - ваш реальный код делает с ними что-то полезное, например, ведение журнала?
Обратите внимание на оператор return в конце - это может быть неуместно, но если вы ловите эти исключения, вам придется вернуть что-то .