命令行工具错误设计

时间:2012-02-09 08:42:13

标签: shell error-handling

我目前正在使用命令行工具,因为这是我第一次设计这样的工具,我有一些设计问题,最值得注意的是如何处理非致命错误。

我正在处理的工具在可配置端口上引发主服务器,然后在不可配置的端口上引发可选的Web服务器。如果我们再选择这样做(当使用主服务器的不同端口时),当尝试启动可选的Web服务器时,我们显然会遇到绑定错误。

由于这是一个非致命错误(运行网络服务器是可选的),并且从UI体验我最初的想法是打印出一个明确的错误并继续执行该程序。但是我被告知,从脚本编写的角度来看,打印错误然后存在是更好的做法。

那么更好的是什么?

1 个答案:

答案 0 :(得分:1)

您可能还想考虑人们可能希望编写希望调用成功的脚本,即使 Web服务器已在运行。

如果你定义了'如果webserver已经运行'则失败'的默认行为,那么这样的脚本将不得不解析你的错误信息,或者读取/理解你的返回值并找出 this的调用失败特殊原因(即网络服务器已在运行)。

给他们一个方法,并引入一个标志(参数),他们可以决定他们想要的行为。如果没有标志,可能会做更安全的事情(即如果网络服务器正在运行则输出错误。)