0
A
回答
3
異常會爲您提供更多上下文信息,如堆棧跟蹤對於在開發過程中以及在生產系統中記錄異常詳細信息時診斷問題都很有用。
沒有理由不使用這兩種方法。您可以使用錯誤代碼屬性定義您自己的異常類型,也可以編寫一個包裝來從data collection中提取錯誤編號。
2
當你使用異常的時候,你可以跟蹤生成異常的執行路徑,因此這非常適合調試,而且現代編程語言也有一些特徵(如try/catch塊) 來操縱異常,所有這適用於調試。
0
在java或c#中使用錯誤返回碼,如果使用異常是一個選項,則會創建錯誤的代碼。
這將混合兩個不同的東西,錯誤處理和正常流程。
在現代編程語言中,不要使用返回值來表示錯誤狀態,錯誤的操作,錯誤的樣式和簡單的愚蠢。
如果有人覺得有必要爭論這個,請通過舉例或參考文獻的方式來做,而不僅僅是斷言。
相關問題
- 1. 返回錯誤並拋出異常
- 2. 拋出異常返回內存異常錯誤
- 3. 拋出異常後返回
- 4. C++拋出異常提供了錯誤
- 5. C++拋出異常,段錯誤
- 6. C++刪除錯誤 - _unlock_fhandle拋出異常?
- 7. Php拋出異常錯誤
- 8. 拋出異常錯誤
- 9. 返回錯誤消息vs拋出異常
- 10. 在不拋出異常的情況下返回錯誤
- 11. 拋出異常VS返回錯誤,嘗試,捕捉,最後
- 12. C++異常拋出
- 13. C#拋出異常
- 14. C#拋出異常
- 15. 返回null或拋出異常一次
- 16. 只返回沒有異常拋出
- 17. Python:拋出異常或返回無?
- 18. 拋出異常或返回值
- 19. 拋出異常和返回類型
- 20. 從servlet返回JSONObject拋出異常
- 21. 拋出一個異常或返回null
- 22. 返回null或拋出異常
- 23. GWT - 拋出異常VS返回null
- 24. 拋出異常或返回值
- 25. 返回java.util.Optional或拋出(Checked/Unchecked)異常
- 26. 返回NaN還是拋出異常?
- 27. 返回值並拋出異常?
- 28. Postgresql,異常返回錯誤
- 29. C++/C#異常拋出
- 30. ASP.NET WebService在拋出異常時返回異常字符
我從來沒有聽說過一種規則,規定「不要使用返回代碼來表示現代語言中的錯誤代碼」,所以說它總是產生錯誤的代碼是錯誤的。當然,例外會給你更多的細節,但每個功能都有一個時間和地點。而且你沒有任何示例/引號,所以我沒有看到需要與他們對抗:) –
也許這是一個跡象表明你需要閱讀更多。 IDesigns中的規則20 C#編碼標準狀態: 「避免將錯誤代碼作爲方法返回值」。 現在請顯示任何類型的文學參考或例子,使用錯誤代碼作爲返回值,並沒有設計得不好的代碼。請記住OP將這個問題作爲一個/或命題提出。通常,設計具有代表錯誤代碼的「某些東西」是很好的設計,但這不是問題所在:它是關於是否使用異常或錯誤返回代碼。後者是現代語言中明顯錯誤的選擇。 –