2010-10-02 162 views
1

我正在實現一個查找列表中元素的方法。元素應該存在於列表中。如果元素不存在,我不想返回null,我想拋出一個Exception,但我是Java中的異常處理的新手,我不知道在這種情況下應該拋出什麼Exception我應該拋棄什麼樣的「沒有這樣的元素」?

我認爲這是一個相當普遍的情況,所以我可以使用一個已經存在於Java SE標準庫中的Exception

什麼Exception我應該扔在這種情況下?

回答

6
+0

這是明顯的嗎? :) – Starkey 2010-10-02 18:47:18

+0

謝謝,我只是在尋找實現['Exception']的異常(http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html)現在,當這個正在實現'RuntimeException'這是所謂的「未檢查」異常?在使用這種例外時有什麼我應該考慮的嗎? – Jonas 2010-10-02 18:53:56

+1

是的,'RuntimeException'未被選中。你可以在這裏閱讀所有關於它的內容:[Unchecked Exceptions - The Controversy](http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html) – NullUserException 2010-10-02 18:56:10

1

就我個人而言,我不認爲這是一個例外。有很多元素都不在列表中,所以元素無法找到的事實並不罕見,相當普通。我更喜歡某種OptionMaybe類型作爲返回類型。

我不知道爲什麼這種類型不是由JRE提供的(在我看來,這是一個大規模的疏忽),所以,不幸的是,你將不得不推出自己的類型。但是,您可以在Web上找到大量Maybe類型的Java實現以及甚至是Maybe monad的示例。例如,它似乎是一個非常常見的用於教授泛型的入門示例。

相關問題