У меня есть метод вроде:
public TResult DoSomethingWithLogging<TResult>(Func<TResult> someAction)
{
try
{
return someAction.Invoke();
}
catch (Exception ex)
{
LogException(ex)
throw;
}
Этот метод используется следующим образом:
var result = DoSomethingWithLogging(() => Foo());
Я также хочу записывать исключения, которые были обнаружены внутри Foo()
. Я не могу использовать throw
в catch
внутри Foo
.
Как я могу поймать такие исключения?
Пример:
public static string Foo()
{
try
{
return "Foo";
}
catch (Exception)
{
// I have to log this exception too without adding anything to Foo
return "Exception caught";
}
}