您將如何決定,何時拋出異常以及何時捕捉異常?Java中的高效異常處理
1
A
回答
10
「效率」在這裏不應該是一個問題。
當您遇到代碼無法處理的情況(您希望調用者執行某些操作)時,會引發異常。當你可以做些什麼的時候(如果你的調用者也應該做些什麼的話,你可能仍然想重新拋出它或另一個異常),你會發現一個異常。
當您決定是否檢查錯誤條件以避免後續異常或僅調用一些代碼並在之後處理異常時,效率可能會很有用。這裏的經驗法則是,例外應該只發生在例外的情況下,因爲它們會產生相當多的運行時間開銷(當它們實際被拋出時,純粹的catch塊沒有成本)。
4
這是一個高度爭議的話題,很多人都有強烈的意見。一些有用的鏈接
http://www.ibm.com/developerworks/java/library/j-jtp05254.html
http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html
最喜歡春天的流行的框架相信只有處理異常的理念,如果你可以做一些關於他們,因此,他們投入更多的運行時異常。這是有道理的,因爲拋出和捕獲檢查異常是添加不必要的代碼。
還有一個問題。在應用程序中的某個時刻,尤其是接近UI界面層(例如Web應用程序的servlet),您需要確保正確處理各種異常並捕獲它們。否則,用戶會看到500錯誤,這絕對不是一個理想的體驗。在某個時候,您想讓用戶瞭解哪裏出了問題。如果它的運行時異常,可能更好的說,未知的錯誤,記錄它併發送郵件給系統管理員跟蹤。
所以是的,只處理您期望的異常,並且可以在整個應用程序中以建設性的方式進行處理。但是,當您接近應用程序的用戶界面層時,請對此規則進行例外。
相關問題
- 1. 高效的異常處理技術
- 2. Java中的異常處理
- 3. Java中的異常處理
- 4. Java異常處理?
- 5. Java異常處理
- 6. Java異常處理
- 7. Java異常處理
- 8. java異常處理
- 9. Java異常處理
- 10. Java異常處理
- 11. 處理Java異常
- 12. 處理java異常
- 13. Java異常處理
- 14. Java的異常處理NullPointerException異常
- 15. Infinity的Java異常處理
- 16. 核心-java異常處理
- 17. Java異常處理方法
- 18. Java:異常處理程序
- 19. Java GUI Jframe異常處理
- 20. Java異常處理概念
- 21. Java異常處理機制
- 22. Java EE/Struts異常處理
- 23. Java異常處理:/ zeo
- 24. Java SpringBoot異常處理
- 25. java處理字符異常
- 26. Java異常處理查詢
- 27. Java文件異常處理
- 28. Java異常處理策略
- 29. Java嵌套異常處理
- 30. Java異常處理finally塊
是否真的有沒有成本,有一個catch塊?我認爲在設置和拆除額外的面向異常的框架時,即使沒有拋出異常,也會有開銷(儘管可能與您的實際代碼相比很小)。 – 2010-12-16 04:50:14
謝謝蒂洛。 – Mudassir 2010-12-16 05:45:55