2009-07-16 16 views
39

我已經看到有和沒有句點的兩個異常消息。我可以想出爲什麼兩者都可以是好的一些原因。你用一段時間結束你的異常消息嗎?

  • 沒有點會給你自由添加期限或如果你想離開它。如果郵件進入某種標題欄或某物,可能會有用。
  • 通過一個點,你會一直知道你有一個「完整的句子」,它看起來更完整。

您推薦哪一個?

也可能是本地化資源字符串中的問題。很明顯,你不能在所有事情之後放置一段時間(在按鈕和菜單項上的文本之後的週期看起來很奇怪)。但是,您是否應該將所有時間都保持一致,並在稍後有用的地方添加它?或者你寧願放一個看起來合適的時期?例如在所有資源字符串和異常消息都是句子之後,但不是在那些單詞之後。但是,那麼短句怎麼樣呢?例如,像「創建新文件」一樣。也許可以省掉那些被認爲是行爲的字符串......(只是在想即時在這裏打字......

不是世界上最重要的事情,我知道,但是像這樣的小事情往往會問題是我不確定哪一個要去:p

回答

38

是的我通常把異常信息當作完整句子,結束它們與

然而一個週期中,在異常信息是指用於顯影劑,和不是終端用戶,可能v很明顯,相同的底層異常應該爲最終用戶產生兩種不同的消息,這取決於調用異常拋出方法的上下文。

你真的應該向用戶顯示較少的技術性,用戶友好的信息。

+7

+1與.NET框架保持一致。 – 2009-07-16 11:30:58

5

我總是在我的例外描述中使用句點。簡單的事實是,句子被正確地打斷,更容易閱讀,更專業,這對於感知質量很重要 - 你不覺得嗎?

比較它:

我總是用我的異常說明時期一個簡單的事實是,這是正確的標點句更容易閱讀,更專業的尋找這對感知質量的重要你不覺得

+0

有趣的插圖。 – 2009-07-16 11:15:55

+2

我認爲不會向最終用戶顯示異常消息會使感知質量更高。 – 2009-07-16 11:25:45

+0

是的,一個正確的標點符號拼寫中繼劑量lokk摩爾proesionall – Guffa 2009-07-16 11:26:29

8

框架中的異常消息以點結尾;我傾向於這樣做。
在任何情況下,選擇一種風格,並嘗試堅持...

-1

使用你的最佳判斷。我有時也使用感嘆號。 :-)

4

異常消息構成應用程序開發者接口的一部分。接口通常旨在幫助用戶執行某些特定任務。在出現異常的情況下,提供的接口應設計爲傳達有關應用程序中發生的錯誤的信息。

當你決定拋出一個異常,並寫出這樣

throw new ArgumentException("The string must contain at least one character."); 

那麼你已經取得了多項有關接口決定,包括線路:

  • 異常類型
  • 的缺乏本地化的異常消息(使用硬編碼字符串通常暗示着這種情況)
  • 此異常不是任何其他情況的結果(沒有內部除外)

記住,開發者接口的存在是爲了滿足開發者和用戶界面爲用戶服務,前者比後者具有如此千差萬別的要求,什麼是對一個可能不利於其他所以例外消息中的句點不應該涉及用戶界面,因爲它對最終用戶應該是不可見的。

在大多數情況下,使用期限並不是主要決定,但您應該考慮是否存在(或缺少存在)對界面有益或有害,方法是考慮已提出的包括框架一致性和本地化在內的點。

我知道這個帖子有點羅嗦,可能有點astronauty,但我希望這對你有幫助。

22

問:是否用一段時間結束異常消息?

Best Practices for Exceptions† MSDN上一節中的「創建和引發異常」:

  • 使用語法正確的錯誤消息,包括結束 標點符號。描述字符串中的每個句子在例外 應該在一段時間內結束。例如,「該日誌表已溢出」 是一個合適的描述字符串

和關於經由該應用程序的用戶界面可以反饋給用戶,問題包括:

......也可能是本地化的資源字符串的問題。

上面提到的MSDN文章還指出:

  • 包括在每一個異常的本地化描述字符串。用戶看到的錯誤 消息是從描述字符串 派生的異常派生的,而不是從異常類派生的。

另外,從Exception.Message Property†在「備註」部分的開頭:

錯誤消息指向正在處理異常的開發人員。 Message屬性的 文本應該完全描述錯誤,並且在可能的情況下應該說明如何糾正錯誤。頂級 異常處理程序可能會將消息顯示給最終用戶,因此您應該確保它在語法上是正確的,並且消息的每個句子都以句點結尾。不要使用問號或感嘆號 分。如果您的應用程序使用本地化的異常消息,則您應該確保它們被準確翻譯。


† .NET Framework 4.6和4.5

相關問題