2012-02-09 65 views
1

我目前工作的一個命令行工具,因爲這是我第一次設計這樣的工具我有幾個設計問題,最主要的是如何處理非致命錯誤。命令行工具錯誤設計

是我工作的工具提出了一個不可配置端口上配置端口可選的網絡服務器上,之後主服務器。如果我們再選擇一次做到這一點(而使用不同的端口主服務器),我們顯然會得到一個綁定錯誤時嘗試啓動可選的Web服務器。

因爲這是一個非致命錯誤(運行Web服務器是可選的),並從UI體驗我最初的想法是打印出清晰的錯誤,並與程序進行。不過,我已經被告知,從腳本立場的角度打印出錯誤,然後現有是更好的做法。

那麼,什麼是好?

回答

1

您可能還想考慮人們可能希望編寫腳本,即使網絡服務器已經在運行,但腳本的調用也會成功

如果定義的默認行爲「失敗,如果Web服務器已經運行」,那麼這樣的腳本將要分析你的錯誤信息,或讀/瞭解您的返回值,並計算出該調用失敗這個特別的原因(即網絡服務器已經運行)。

給他們一個出路這一點,並引入標誌(參數),他們可以決定他們想要的行爲。在沒有國旗的情況下,做更安全的事情也許(即如果網絡服務器正在運行時出錯)。

+0

我明白你在說什麼,但是超載消費者與標誌可以混淆恕我直言。那麼在那種情況下,爲什麼「安全」退出會更好地成爲一個明確的信息呢? – jonatzin 2012-02-09 13:57:02

+0

那麼,如果不熟悉的用戶在沒有標誌的情況下調用程序,那麼在沒有標誌的情況下,什麼是「安全」的默認行爲可能取決於是否會發生多大程度的損壞。我建議「示數出來」爲默認值,因爲我想可能會發生損害最小,如果它出現了錯誤,因此沒有運行。 – ArjunShankar 2012-02-09 14:08:10

+0

嗯,好吧。感謝您的幫助! – jonatzin 2012-02-09 14:11:42