2011-10-26 41 views
4

我最近在BS的C++書中讀到過,可以將遞歸搜索的結果立即從整個調用堆棧中立即返回。 可以在java中做同樣的事情嗎?我知道這是可能的,但它是否令人沮喪,並被認爲是一種難聞的氣味? 這比使用'找到'標誌並且每次檢查都容易。當發現搜索結果時拋出異常

+1

爲什麼要結束投票?這是一個公平的問題。 – mre

回答

3

我絕對會去一面旗幟。當然你可以用Exception來做,但它並不意味着除了例外情況之外,還要控制代碼流。例外情況不是免費的,而對國旗進行簡單檢查將花費O(1)。

1

你應該使用一個標誌。例外情況設計用於特殊情況。他們不應該是返回碼。此外,拋出異常會導致相當大的成本,同時檢查一個標誌是非常快速的操作。

2

一面旗子確實是一個更好的選擇。

應該使用異常,處理意外的行爲,而不是控制程序的工作流程。請記住,拋出異常將使所有調用方法明確處理它,並且這會使您的代碼更加耦合得比它需要的更多。

相關問題