我們正在更改舊的錯誤消息的一些文本。什麼是編寫好的錯誤消息(特別是Windows XP/Vista)的最佳實踐的一些資源。錯誤消息文本 - 最佳做法
回答
在措辭方面的錯誤信息,我建議參照下面的風格指南的Windows應用程序:
- Windows user experience guidelines,並且特別是部分上的錯誤消息here。
- Microsoft Manual of Style
始終包含對糾正錯誤的建議。
最終的最佳做法是首先防止用戶造成錯誤。
不要告訴用戶他們不關心的任何事情;錯誤代碼5064對任何人都不意味着什麼。不要告訴他們他們做錯了什麼;首先禁止它。不要責怪他們,特別是不要因爲你的軟件造成的錯誤。最重要的是,當出現問題時,告訴他們如何解決這個問題,以便他們可以繼續前進並完成一些工作。
我認爲編寫錯誤消息與設計用戶界面對錯誤的反應並不完全相關。您可以在用戶不需要查看的地方記錄非常好的錯誤消息。 – 2008-09-22 19:53:37
試圖找出一種方法來編寫您的軟件,以糾正它們的問題。
對多語言的支持適用於各種消息,但在出現錯誤消息時往往會被遺忘。
我會不告訴用戶無用的深奧的信息,如數字錯誤代碼。但是我會遵循這一點,通過說絕對記錄這些信息以便通過技術上更精明的人進行故障排除。
對於任何用戶輸入(字符串,文件名,值等),始終用周圍的分隔符(引號,括號等)顯示錯誤的值。例如
您輸入的文件名找不到「somefile.txt」
這有助於表明可能已經潛入任何空格/回車並大大降低故障排除和無奈。
一個良好的錯誤消息應該:
- 不顯眼(不藍屏或死亡的黃屏)
- 給用戶方向糾正問題(對自己可能的話,或誰聯繫尋求幫助)
- 隱藏無用的,深奧的程序員廢話(不要說,「45行上發生空引用異常」)
- 是描述性而不是冗長的。只需要足夠的信息告訴用戶他們需要知道什麼,而沒有什麼更多。
我開始做的一件事就是生成一個唯一的編號,顯示在錯誤消息中並寫入日誌文件,以便在用戶向我發送屏幕截圖時找到日誌中的錯誤或打電話說:「我得到一個錯誤,它說我的參考號是0988-7634」
- 避免來自不同地方的相同錯誤消息;如果可能,請使用file:line參數化,或者使用其他上下文讓開發人員唯一標識錯誤發生的位置。
- 設計機制以實現輕鬆定位,特別是如果它是商業產品。
- 如果錯誤消息是用戶可見的,使它們完整,有意義的句子,不假設代碼的深入瞭解;記住,你總是太靠近問題 - 用戶不是。如果可能,請向用戶提供有關如何繼續,聯繫人等的指導。
- 如果可能,每個錯誤都應該有一條消息;如果不是這樣,那麼請嘗試確保所有錯誤展開路徑最終都會顯示一條錯誤消息,以說明發生的情況。
我敢肯定,這裏會有其他很好的答案...
更短的消息實際上可能被讀取。
您的錯誤信息越長,用戶閱讀的次數越少。也就是說,嘗試重構代碼,以便在出現明顯響應時排除異常。嘗試僅發生基於超出用戶或代碼控制範圍的異常的異常。
最好的異常消息是你永遠不需要顯示的消息。
錯誤處理總是比錯誤報告更好,但因爲你是改裝的錯誤信息,而不一定這裏的代碼的一對夫婦的建議:
用戶希望的解決方案,而不是問題。即使信息與「請關閉當前窗口並重試您的操作」一樣簡單,請幫助他們知道發生錯誤後該怎麼辦。
我也是集中記錄錯誤的忠實粉絲。確保日誌既是人機的,也是電腦可掃描的。用戶並不總是讓你知道他們遇到了什麼問題,特別是如果他們可以'解決',所以日誌可以幫助你知道需要修復的東西。
如果你可以很容易地控制錯誤對話框,那麼有一個對話框顯示一個很好的,可讀的消息,並帶有一個'詳細信息'按鈕來顯示錯誤號,跟蹤等,這對於實時解決問題有很大幫助以及。
出於安全原因,請勿提供用戶不需要的內部系統信息。簡單示例:登錄失敗時,不要告訴用戶用戶名是否錯誤或密碼錯誤;這隻會幫助攻擊者蠻橫暴力系統。相反,只是說「用戶名/密碼組合是無效的」或類似的東西。
- 1. 存儲和檢索錯誤消息的最佳做法
- 2. 顯示錯誤消息的最佳做法
- 3. Firebase雲消息傳遞:最佳做法
- 4. Django - 異常處理最佳做法併發送自定義錯誤消息
- 5. 使用頁面對象檢查錯誤消息的最佳做法
- 6. 解決URI錯誤的最佳做法
- 7. RabbitMQ - 最佳做法
- 8. 驗證時提供錯誤消息的最佳方法
- 9. 在REST服務上返回錯誤消息的最佳方法?
- 10. C#最佳實踐錯誤處理和傳遞錯誤消息
- 11. 最佳做法response.getOutputStream
- 12. 使用Hadoop預處理文本消息的最佳方法
- 13. 將數據庫與消息隊列分離的最佳做法
- 14. 駱駝最佳做法,消息和異常處理
- 15. 構建異常消息的最佳做法是什麼?
- 16. 在ServiceBus上發送大量消息的最佳做法
- 17. 任務取消的最佳做法
- 18. 從Log4Net日誌文件讀取錯誤消息的最佳方法
- 19. WCF休息 - 最佳做法是什麼?
- 20. 在Laravel中處理本地化消息的最佳做法是什麼?
- 21. estimatedHeightForRowAtIndexPath最佳做法
- 22. sql腳本語法的最佳做法
- 23. 獲取solr的錯誤消息文本
- 24. ActionListener最佳做法
- 25. 發送消息的最佳方法
- 26. 收到C2DM消息後做什麼工作的最佳做法是什麼?
- 27. 最佳做法applicationDidEnterBackground
- 28. 最佳做法UIScrollView
- 29. CLLocationManager最佳做法
- 30. FormEmailer腳本錯誤消息
這將是很好的細節誰是你的觀衆:最終用戶?開發者? – rlerallut 2008-09-22 20:53:54