0
A
回答
3
文字說明非常有用。有幾個原因,我認爲他們應該總是包括在內:
- 它們使您能夠清楚地瞭解異常,而無需在文檔中查找它。
- 他們讓更多的具體信息,以比一個「通用」異常的文件傳遞 - 尤其是關於異常的上下文信息可以包括
- 它們允許你進行國際化的異常消息(非常重要)
- 它們提供了一種方式(如果做得好),根據具體情況向最終用戶提供更有意義的報告。但是,這必須小心謹慎地完成(如果它是人類,您不希望只顯示最終用戶的每個例外情況)。
- 它們提供了一種簡單的方法來添加比僅僅更有意義的異常日誌記錄一類
- 他們提供標準化:異常滿足異常的用戶的期望,因爲框架是基於具有此信息
3
應該記錄一個特殊的異常,但包括文本描述允許您添加更多關於當前異常實例的上下文。
換句話說,ArgumentException
不知道哪個參數有問題,參數在什麼狀態下觸發了異常。
2
是的,Message屬性和消息構造函數參數是必需的。它們不是多餘的。
這是發給另一方的信息,告訴他或她出了什麼問題。例如,拋出FileNotFoundException是不夠的 - 你應該說哪個文件。僅僅說處理Web請求時發生異常是不夠的 - 您應該說出哪個錯誤以及哪個請求。
1
當您想要向用戶顯示異常結果(儘管i18n使這有點棘手)或者當您將異常寫入日誌文件時,有一個文本描述是有用的。請記住,文本描述可以包含更多可能在運行時可用的信息,這在記錄異常時不可用。像參數名稱ArgumentNullException之類的事情馬上就要到了。
1
調試時或排除故障,我想需要做的最後一件事是不必要地閱讀文檔。我認爲有解釋性的文字配合excecptions是非常方便的。如果沒有提供,我認爲圖書館真的錯過了船。
2
異常應包括儘可能多的信息,以便完全診斷問題。這幾乎總是包含對問題的描述,因爲簡單地說,異常的類型不足以追蹤問題。
例如,考慮下列異常是否不包含消息。你仍然可以追蹤問題
- FileNotFoundException異常
- 參數*異常
相關問題
- 1. 上次拋出的異常包含以前拋出的異常?
- 2. 當類不需要拋出異常
- 3. 實體框架在拋出異常時是否可以包含SQL命令?
- 4. 這行代碼是否真的會拋出IndexOutOfRange異常?
- 5. 是否彈出拋出異常?
- 6. 是在拋出異常時關閉的java掃描程序?
- 7. 異常不需要被拋出,但IOException異常
- 8. pip在安裝包時拋出異常
- 9. spring mvc:檢測加載上下文時是否拋出異常
- 10. 只是描述接口描述實現需要做什麼?
- 11. 確定CoreApplicationView.GetCurrentView()是否會拋出異常?
- 12. 從CoerceValueCallback拋出異常是否合適
- 13. 當使用Log.setUncaughtExceptionHandler拋出異常時需要更多信息
- 14. 魔術異常拋出拋出異常
- 15. 是否有一張表包含sysobjects.xtype描述的列表?
- 16. 需要Perl -V描述
- 17. 從雙面軟件包中拋出異常是否正確?
- 18. 表之間的關係是否需要描述?
- 19. 是否明確拋出異常向上拋出?
- 20. 我是否需要包含support-v7/appcompat?
- 21. 什麼是拋出異常
- 22. setup.py:當需要包名稱中包含這裏描述了幾許
- 23. BackgroundTaskCompletedEventArgs.CheckResult何時拋出異常?
- 24. 拋出異常時中斷
- 25. 何時拋出異常?
- 26. 在等待異步函數時,是否需要顯式捕獲並重新拋出異常?
- 27. 保存excel文件時拋出異常
- 28. 使用拋出包含未知異常到自定義異常的建議
- 29. 異常拋出異常
- 30. Java方法包含另一種拋出異常的方法
異常消息是開發商,而不是用戶。 – 2009-08-03 17:47:12