Mat*_*ley 3 algorithm exception control-flow data-structures
好吧,最近,我遇到了一个有趣的问题.在潜在(实际上)无限递归序列中生成第n个值.这个特定的算法将在其成功的深度处至少10-15个堆栈引用.我的第一个想法是抛出看起来像这样的(C#)的SuccessException:
class SuccessException : Exception
{
public string Value
{ get; set; }
public SuccessException(string value)
: base()
{
Value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
然后做这样的事情:
try
{
Walk_r(tree);
}
catch (SuccessException ex)
{
result = ex.Value;
}
Run Code Online (Sandbox Code Playgroud)
然后我的思绪在这里徘徊,在那里我一遍又一遍地听到从未使用Exceptions进行流量控制.有没有借口?如果你要实现它,你将如何构建这样的东西呢?