Мне нужно реализовать тяжелую, несколько хрупкую логику в методе, который я реализую как итератор (используя yield
):
public IEnumerable<Things> GetMoreThings() {
while (goodStuffHappens()) {
Things moreThingsIWant = TemptFateAgain();
if (moreThingsIWant.Any())
yield return moreThingsIWant;
}
}
В вызывающем методе мне нужно обернуть вызов GetMoreThings
в _4 _ / _ 5_ и yield return
результат:
try {
foreach (Things thing in Helpful.GetMoreThings())
yield return thing;
}
catch (Exception e) {
//crash, burn
}
Посвященный сразу поймет, что это невозможно - внутри блока _8 _ / _ 9_ не бывает доходности (только _10 _ / _ 11_).
Какие-нибудь рекомендации?
catch
есть код, который вы не показываете? - person svick   schedule 11.02.2016