这里有一篇关于跨应用程序控制流的有趣帖子。
好吧,最近,我遇到了一个有趣的问题。在潜在(实际上)无限递归序列中生成第 n 个值。这个特定的算法将在它成功的时候至少有 10-15 个堆栈引用深度。我的第一个想法是抛出一个看起来像这样(C#)的 SuccessException:
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;
}
然后我的想法又回到了这里,我一遍又一遍地听到从不使用异常进行流量控制。有没有借口?如果你要实现它,你将如何构建这样的东西?