アプリケーション間の制御フローに関連して、これについて興味深い投稿がここにあります。
さて、最近、興味深い問題に出会いました。潜在的に (実質的に) 無限の再帰シーケンスで 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;
}
そこで、フロー制御に例外を使用しないように何度も聞いてきました。言い訳はありますか?また、実装する場合、このようなものをどのように構築しますか?