当前位置:  开发笔记 > 编程语言 > 正文

控制流程的例外情况

如何解决《控制流程的例外情况》经验,为你挑选了1个好方法。

关于跨应用程序的控制流程,这里有一个有趣的帖子.

好吧,最近,我遇到了一个有趣的问题.在潜在(实际上)无限递归序列中生成第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;
}

然后我的思绪在这里徘徊,在那里我一遍又一遍地听到从未使用Exceptions进行流量控制.有没有借口?如果你要实现它,你将如何构建这样的东西呢?



1> Mitchel Sell..:

在这种情况下,我会查看你的Walk_r方法,你应该有一些返回值的东西,抛出一个异常来表示成功,这不是一种常见的做法,至少对看到代码的人来说非常困惑.更不用说与异常相关的开销.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有