我最近在BS的C++書中讀到過,可以將遞歸搜索的結果立即從整個調用堆棧中立即返回。 可以在java中做同樣的事情嗎?我知道這是可能的,但它是否令人沮喪,並被認爲是一種難聞的氣味? 這比使用'找到'標誌並且每次檢查都容易。當發現搜索結果時拋出異常
4
A
回答
3
我絕對會去一面旗幟。當然你可以用Exception
來做,但它並不意味着除了例外情況之外,還要控制代碼流。例外情況不是免費的,而對國旗進行簡單檢查將花費O(1)。
1
你應該使用一個標誌。例外情況設計用於特殊情況。他們不應該是返回碼。此外,拋出異常會導致相當大的成本,同時檢查一個標誌是非常快速的操作。
2
一面旗子確實是一個更好的選擇。
應該使用異常,處理意外的行爲,而不是控制程序的工作流程。請記住,拋出異常將使所有調用方法明確處理它,並且這會使您的代碼更加耦合得比它需要的更多。
相關問題
- 1. jqGrid搜索拋出異常
- 2. Zend_Ldap在搜索CN時出現異常
- 3. 閱讀JSON結果時出現異常
- 4. 獲取xquery結果時出現異常
- 5. 結果集的getString拋出ArrayIndexOutOfBoundsException異常
- 6. LibGDX:AssetsManager GdxRuntime拋出時出現的異常
- 7. 類未發現異常:拋出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?
- 8. NPM搜索結果排序異常
- 9. Groovy結束異常拋出異常
- 10. RESTClient實現拋出異常異常
- 11. 當異常拋出時,Rubymine中斷
- 12. 當拋出異常時gzip/deflate失敗
- 13. 當拋出異常時類變爲空
- 14. 當異常被拋出
- 15. transformer.transform(..拋出一個IO異常/文件未發現異常
- 16. 魔術異常拋出拋出異常
- 17. 拋出異常拋出異常
- 18. 彈性搜索:pyes.exceptions.IndexMissingException來自搜索結果的異常
- 19. 如何覆蓋發現搜索結果
- 20. 搜索的結果,發現在序言
- 21. JDBC結果出現異常行爲
- 22. 當我們嘗試發佈時,Sitecore爲唯一索引拋出異常
- 23. 當我拋出異常時會發生什麼?
- 24. 當我拋出一個異常時,內存發生了什麼?
- 25. 當main拋出異常時會發生什麼?
- 26. 當我使用Injector.get時發生一個服務拋出異常()
- 27. 解析錯誤發生時拋出適當的異常嗎?
- 28. 當發佈大量消息時,Solace會拋出異常
- 29. 實現IDisposable接口和拋出異常時會發生什麼
- 30. BackgroundTaskCompletedEventArgs.CheckResult何時拋出異常?
爲什麼要結束投票?這是一個公平的問題。 – mre