我正在實現一個查找列表中元素的方法。元素應該存在於列表中。如果元素不存在,我不想返回null
,我想拋出一個Exception
,但我是Java中的異常處理的新手,我不知道在這種情況下應該拋出什麼Exception
。我應該拋棄什麼樣的「沒有這樣的元素」?
我認爲這是一個相當普遍的情況,所以我可以使用一個已經存在於Java SE標準庫中的Exception
。
什麼Exception
我應該扔在這種情況下?
我正在實現一個查找列表中元素的方法。元素應該存在於列表中。如果元素不存在,我不想返回null
,我想拋出一個Exception
,但我是Java中的異常處理的新手,我不知道在這種情況下應該拋出什麼Exception
。我應該拋棄什麼樣的「沒有這樣的元素」?
我認爲這是一個相當普遍的情況,所以我可以使用一個已經存在於Java SE標準庫中的Exception
。
什麼Exception
我應該扔在這種情況下?
就我個人而言,我不認爲這是一個例外。有很多元素都不在列表中,所以元素無法找到的事實並不罕見,相當普通。我更喜歡某種Option
或Maybe
類型作爲返回類型。
我不知道爲什麼這種類型不是由JRE提供的(在我看來,這是一個大規模的疏忽),所以,不幸的是,你將不得不推出自己的類型。但是,您可以在Web上找到大量Maybe
類型的Java實現以及甚至是Maybe
monad的示例。例如,它似乎是一個非常常見的用於教授泛型的入門示例。
這是明顯的嗎? :) – Starkey 2010-10-02 18:47:18
謝謝,我只是在尋找實現['Exception']的異常(http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html)現在,當這個正在實現'RuntimeException'這是所謂的「未檢查」異常?在使用這種例外時有什麼我應該考慮的嗎? – Jonas 2010-10-02 18:53:56
是的,'RuntimeException'未被選中。你可以在這裏閱讀所有關於它的內容:[Unchecked Exceptions - The Controversy](http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html) – NullUserException 2010-10-02 18:56:10