gpt4 book ai didi

ruby - 在 Ruby 中出现参数错误时最好使用 abort() 或 raise() 吗?

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:05 24 4
gpt4 key购买 nike

我正在用 Ruby 编写一个命令行实用程序,并对检查参数组合是否有效的逻辑进行编码。如果我发现错误,如果我不打算恢复,那么引发 ArgumentError 与当场调用 abort() 相比有什么好处?一般来说,如果没有尝试恢复的计划,什么时候提出异常而不是中止是明智的?我假设异常路由是可取的,因为需要某种优雅的关闭而不是简单地回到命令行。

最佳答案

总是,总是抛出异常而不是中止。中止是丑陋的,实际上是一种最后的手段,如果你真的无法有意义地继续下去,你会使用它。

您可以在 ArgumentError 之后继续:您可以告诉用户正确的语法是什么,并且可以打印帮助消息。或者,也许稍后您会在另一个可以处理错误的项目中重用参数解析器。 (事实上​​ ,一个常见的习惯用法是在异常 block 中调用参数解析器,如果参数解析器引发错误,则打印出帮助消息)。

在任何情况下,ArgumentError 的默认行为都类似于中止,但您可以用它做更多的事情。因此,我认为您应该采用这种更灵活的解决方案。

关于ruby - 在 Ruby 中出现参数错误时最好使用 abort() 或 raise() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com