Вы могли бы потенциально изменить его на ...
public bool Foo()
{
try
{
return SomeFunctionMightThrow();
}
catch (Exception ex)
{
// note: this will reset the exception stack trace
throw LogAndReturnException(ex);
}
}
private Exception LogAndReturnException(Exception ex)
{
Logger.log(ex);
return ex;
}
По сути, это именно то, что вам нужно, но дает VS путь возврата кода.
Или для более упрощенного подхода, который будетсохраните трассировку стека, просто измените ваш улов на:
catch (Exception ex)
{
Log(ex);
throw; // retains stack trace
}