我正在Ruby中编写一个命令行实用程序,并编写检查参数组合是否有效的逻辑.如果我发现错误,如果我不打算恢复,那么引发ArgumentError与现场调用abort()的优势是什么?一般情况下,如果没有计划尝试恢复,何时提出异常而不是中止?我假设异常路由是可取的,需要某种优雅的关闭,而不是简单地回退到命令行.
总是,总是提出异常而不是中止.流产是丑陋的,如果你真的无法继续下去,那么你真的是最后的手段.
您可以在以下后继续ArgumentError:您可以告诉用户正确的语法是什么,您可以打印帮助消息.或者,稍后您可以在另一个可以处理错误的项目中重用参数解析器.(实际上,常见的习惯用法是在异常块中调用参数解析器,如果参数解析器引发错误,则打印出帮助消息).
在任何情况下,默认行为ArgumentError类似于中止,但您可以使用它做更多.因此,在我看来,你应该采用这种更灵活的解决方案.
| 归档时间: |
|
| 查看次数: |
1239 次 |
| 最近记录: |