控制流的例外情况

2023-12-06

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

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

然后我的思绪又回到了这里,我一遍又一遍地听到不要使用异常来进行流量控制。有借口吗?如果你要实现这样的东西,你会如何构建它?


在这种情况下,我将查看您的 Walk_r 方法,您应该有一些返回值的东西,抛出异常来指示成功,这不是常见的做法,并且至少会让看到代码的任何人感到非常困惑。更不用说与异常相关的开销了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

控制流的例外情况 的相关文章

  • 给定一个零索引数组 & 该数组的平衡索引[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给出一个由 N 个整数组成的零索引数组 A 该数组的平衡索引是任何整数 P 满足 0 P 例如 考虑以下由 N 8 个元素组成的数组
  • 有没有办法防止 Visual Studio 因特定方法中的异常而中断?

    我知道我可以根据异常的类型以及最终使用 异常 对话框捕获异常的事实来控制 Visual Studio 处理异常的方式 但是 我有一个在内部抛出 并捕获 一个库ArgumentOutOfRange当我调用特定方法时出现异常 抛出异常 并被库捕
  • 动态规划的复杂组合条件

    我正在探索动态规划设计方法如何与问题的底层组合属性相关 为此 我正在查看的规范实例硬币找零问题 Let S d 1 d 2 d m and n gt 0是请求的金额 我们可以用多少种方式相加n仅使用中的元素S 如果我们遵循一个动态规划如果要
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • 具有 3 路划分的快速排序

    什么是三向分区快速排序 画一个数组 3 5 2 7 6 4 2 8 8 9 0 A 两分区快速排序会选择一个值 比如 4 并将每个大于 4 的元素放在数组的一侧 将每个小于 4 的元素放在另一侧 就像这样 3 2 0 2 4 8 7 8 9
  • 欧拉项目 #18 方法

    我正在研究一个欧拉项目 具体来说 18 总而言之 这个想法是从三角形中找到最大路径 3 7 4 2 4 6 8 5 9 3 3 7 4 9 23 读到这里 大多数人表示 通过从下到上工作可以正确解决这个问题 而不是使用从上到下 贪婪 工作的
  • GWT CellTable getRowElement 抛出 IndexOutOfBoundsException

    我在 GWT 中使用 CellTable 并尝试在发生某些事件时向行添加样式 添加样式的代码如下 Range range playlistTable getVisibleRange int start range getStart for
  • 良好的线性代数包[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为一个项目实现一些谱图算法 其中很大一部分是查找大型稀疏矩阵以及乘法矩阵的特征值和特征向量 我的问
  • python请求:重试直到收到有效响应

    我想知道是否存在重试请求一定次数的常见模式 可能由于服务器错误或网络不良而失败 我想出了这个 并且我愿意在那里找到更好的实现 cnt 0 while cnt lt 3 try response requests get uri if res
  • 如何解决声纳中的 dodgy:unchecked/unconfirmedcast 问题?

    我在下面的代码中通过声纳获得异常 我该如何解决这个问题 建议我 Override public boolean validate BaseInfo infoObject boolean isValid true AckTransferPay
  • 在哪里可以找到产生无标头输出的无损压缩算法?

    你们中有人知道产生无标头输出的无损压缩算法吗 例如不存储用于压缩的哈夫曼树吗 我不是谈论硬编码的霍夫曼树 但我想知道是否有任何算法可以压缩和解压缩输入而不在其输出中存储一些元数据 或者这在理论上是不可能的吗 当然是可能的 其中 LZ 系列压
  • 线性模式匹配算法?

    我有一个由 0 和 1 组成的线性列表 我需要匹配多个简单模式并找到第一个出现的情况 例如 我可能需要找到0001101101 01010100100 OR 10100100010长度为 800 万的列表内 我只需要找到第一次出现的情况 然
  • 找到经过大多数点的直线的最有效算法是什么?

    问题 N 个点在二维平面上给出 同一个点上最多有多少个点straight line The problem has O N2 solution go through each point and find the number of poi
  • 在 ASP.NET 中优雅地处理 URI 黑客攻击

    我编写了一个应用程序 可以优雅地处理大多数异常 页面设计完好无损 并且有一条漂亮的错误消息 我的应用程序将它们全部捕获在Page Error事件并添加了例外HttpContext Curent Context Items然后做了一个Serv
  • 数独生成器算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我制作了一个生成数独的算法 但效率非常低 每个谜题都需要几分钟才能生成 所以现在我正在尝试以最佳方式重新编写它 但我遇到了一些问题 需
  • 为什么在我的遗传算法中添加交叉会给我带来更糟糕的结果?

    我已经实现了遗传算法来解决旅行商问题 TSP 当我仅使用突变时 我找到了比添加交叉更好的解决方案 我知道普通的交叉方法不适用于 TSP 所以我实现了有序交叉 http www permutationcity co uk projects m
  • java中的散列是如何工作的?

    我正在尝试弄清楚java中的哈希值 例如 如果我想在哈希图中存储一些数据 它是否会有某种带有哈希值的底层哈希表 或者 如果有人能够对哈希的工作原理给出一个很好且简单的解释 我将非常感激 HashMap 基本上在内部实现为数组Entry 如果
  • 飞船推进AI:控制飞船在x=0、v=0时着陆的力

    我必须编写 AI 代码来控制游戏中宇宙飞船的许多推进喷气机 为简单起见 令空间为一维 宇宙飞船是一个点 只有 1 架喷气机 规则与问题 Let x v and a是飞船的位置 速度 加速度 Let F是施加在船上的喷射力 我知道质量m宇宙飞
  • 动态前缀和

    是否有任何数据结构能够返回数组的前缀和 1 更新元素以及向数组插入 删除元素 所有这些都在 O log n 内 1 前缀和 是从第一个元素到给定索引的所有元素的总和 例如 给定非负整数数组8 1 10 7前三个元素的前缀和是19 8 1 1
  • 获取大于某个数字的元素个数

    我正在尝试解决以下问题 数字被插入到容器中 每次插入数字时 我需要知道容器中有多少元素大于或等于当前插入的数字 我相信这两个操作都可以以对数复杂度完成 我的问题 C 库中有标准容器可以解决这个问题吗 我知道std multiset可以在对数

随机推荐

  • d3.js 按汇总字段排序

    我有一个 JSON 数据 我想按字段分组 然后按计数排序 var data Name Ravi Country India Name Alex Country USA Name Stew Country UK Name Mary Count
  • 时间:2019-03-27 标签:c#文件路径字符串比较大小写不敏感

    我想比较 C 中包含文件路径的两个字符串 但是 由于在 ntfs 中默认是使用不区分大小写的路径 因此我希望字符串比较以相同的方式不区分大小写 但是我似乎找不到任何有关 ntfs 如何实际实现其不区分大小写的信息 我想知道的是如何使用 nt
  • “u”和“r”字符串前缀到底有什么作用,什么是原始字符串文字?

    一边询问这个问题 我意识到我对原始字符串了解不多 对于自称是 Django 培训师的人来说 这很糟糕 我知道什么是编码 我也知道什么u 自从我了解了什么是 Unicode 以来 就只有这个了 但有什么作用r 究竟做什么 它会产生什么样的字符
  • 简单的 Twitter Oauth 授权每次都要求提供凭据

    我正在使用教程制作一个简单的基于 Twitter 的登录 注册系统here 每次让用户登录时 我都会获得 oauth token 以及 oauth 令牌秘密 但是 即使用户已经登录 系统也会要求他再次登录 我只是想知道如何检查用户是否已经登
  • 使用 JavaScript ES6 箭头函数的立即函数

    有谁知道如何使用 ES6 箭头语法编写立即函数 这是 ES3 5 的实现方式 function 我已经尝试过以下方法 但得到了unexpected token最后一行错误 gt 你可以在这里测试一下 http www es6fiddle n
  • 在 Swift 中对数组进行冒泡排序,交换时出现编译器错误

    我为纸牌游戏编写了一个非常简单的冒泡排序 它采用 Card 对象数组 每个对象都有一个 order 属性 该属性指示要针对相关游戏进行排序的值 以下代码在 Swift Beta 1 和 Beta 6 之间的某个时间停止编译 我不太清楚为什么
  • 如何测试仅调度其他操作的 Redux 操作创建者

    我在测试操作创建器时遇到问题 该操作创建器仅循环传递给它的数组并为该数组中的每个项目调度一个操作 这很简单 我只是似乎无法弄清楚 这是动作创建者 export const fetchAllItems topicIds gt return d
  • 使用 php excel reader 读取 xls 日期值

    我正在使用 PHPExcel 读取 Excel 文件中具有 Mar 13 等值的日期单元格 但它返回 41791 等整数值 请问 我需要做什么才能确保日期读取正确 Excel 将日期存储为序列化时间戳 自 1900 年 1 月 1 日以来的
  • 如何在 C 中打印二维数组而不使用运算符 []?

    我正在尝试使用打印二维矩阵 相反我想用 就像一个指针 所以对于一维数组我会这样做 arr i 例如 用于替换的语法是什么matrix 这是代码 for i 0 i lt size i for j 0 j lt size 2 j printf
  • 部分成功请求的 HTTP 状态代码

    我有一个向用户发送消息的应用程序 在 POST 请求中 传输一个 XML 字符串 其中包含应接收该特定消息的所有用户 如果列表中的任何用户不存在 我会将缺失用户的列表返回给客户以进行进一步评估 现在我问自己应用程序的正确状态代码是什么 表示
  • jquery获取图片宽度和高度

    我有一个非常简单的代码 令人烦恼的是 它正在工作 但在我的一生中 我不明白为什么它现在失败了 function imageSize img var theImage new Image theImage src img attr src v
  • 企业库 Unity 与其他 IoC 容器 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 使用 Enterprise Library Unity 与其他 IoC 容器 Windsor Spring Net Autofac 相比有何优缺点 我正在为用户组准备演示文稿 因此 我刚刚
  • git rebase 和 git push:非快进,为什么使用?

    我有一个分支应该可供其他贡献者使用 并且应该不断与主版本保持同步 不幸的是 每次我执行 git rebase 然后尝试推送时 都会导致 非快进 消息并中止推送 推到这里的唯一方法是使用 force 这是否意味着如果我的分支公开并且其他人正在
  • 在 scipy.signal.fftconvolve 中模拟“axes”参数的紧凑方法?

    scipy signal fftconvolve似乎没有axes参数例如numpy fft fftn 意味着开箱即用 它将一起卷积all axes 我正在寻找最轻松的方法 让它只沿着给定的轴子集进行卷积 有谁知道解决方法或捷径 None
  • 如何使用掩蔽层来掩蔽 LSTM 自动编码器中的输入/输出?

    我正在尝试使用 LSTM 自动编码器以可变长度的序列作为输入进行序列到序列学习 使用以下代码 inputs Input shape None input dim masked input Masking mask value 0 0 inp
  • asp.net 中的 w3c 验证错误

    我是 W3c 验证的新手 我正在尝试修复此错误 但它没有发生 错误如下 字符 是分隔符的第一个字符 但作为数据出现 我正在使用 DataList Control 绑定数据 这是发生 w3c 验证错误的行
  • 对一列矩阵进行子集化删除行名称[重复]

    这个问题在这里已经有答案了 当我尝试按行名称对 1 列矩阵进行子集化时 子集化有效 但会返回数字向量 你能以某种方式阻止这种行为并保留行名称吗 M lt as matrix rnorm 5 rownames M lt LETTERS 1 5
  • 父母向孩子发送消息

    我有从 Parent 类继承的 Child 类 我想要的是将消息发送给孩子 孩子已经实现了该消息 所以这就像从父级调用纯虚函数一样 如果我现在从家长发送消息 我会收到警告 家长可能不会回复此消息 这是真的 因为只有 Child 实现了它 基
  • PHP SQLite JSON 数据重复

    我有以下 PHP 代码 testMessage TESTMESSAGE db new SQLite3 messages sq3 db gt exec CREATE TABLE messages id INTEGER PRIMARY KEY
  • 控制流的例外情况

    有这里有一个有趣的帖子关于这一点 与跨应用程序控制流有关 嗯 最近 我遇到了一个有趣的问题 在潜在 实际上 无限递归序列中生成第 n 个值 这个特定的算法在成功时将至少处于 10 15 个堆栈引用深度 我的第一个想法是抛出一个如下所示的 S