Насколько дороже исключение, чем возвращаемое значение?

Можно ли изменить этот код, с возвращаемым значением и исключением:

public Foo Bar(Bar b)
{
   if(b.Success)
   {
      return b;
   }
   else
   {
      throw n.Exception;
   }
}

к этому, который бросает отдельные исключения для успеха и неудачи

public Foo Bar(Bar b)
{
   throw b.Success ? new BarException(b) : new FooException();
}

try
{
   Bar(b)
}
catch(BarException bex)
{
   return ex.Bar;
}
catch(FooException fex)
{
   Console.WriteLine(fex.Message);
}

Ответы на вопрос(11)

Ваш ответ на вопрос