Исключения для потока управления
Естьинтересный пост здесь об этом, по отношению к потоку управления между приложениями.
Ну, недавно яМы столкнулись с интересной проблемой. Генерация n-го значения в потенциально (практически) бесконечной рекурсивной последовательности. Этот конкретный алгоритм будет по крайней мере в 10-15 стековых ссылок глубоко в точке, где он будет успешным. Моей первой мыслью было создать исключение SuccessException, которое выглядело примерно так (C #):
class SuccessException : Exception
{
public string Value
{ get; set; }
public SuccessException(string value)
: base()
{
Value = value;
}
}
Затем сделайте что-то вроде этого:
try
{
Walk_r(tree);
}
catch (SuccessException ex)
{
result = ex.Value;
}
Тогда мои мысли блуждали сюда, где ямы слышали снова и снова, чтобы никогда не использовать исключения для управления потоком. Есть ли оправдание? И как бы вы структурировали что-то подобное, если бы вы это реализовали?