[英]returning java.util.Optional or throw (Checked/Unchecked)exception
我需要創建一種通過員工姓名查找員工的方法。 可以通過以下三種方法實現此目的:
如果id在我的存儲庫中匹配,則第一種方法將返回employee的實例,否則拋出檢查異常的實例NoSuchEmployeeCheckedException
第二種方法將返回java8的Optional的實例,而不會引發異常。
最后一個方法與第一個方法類似,但是拋出UnCheck異常NoSuchEmployeeUnCheckedException
的實例而不是已檢查的異常。
我已經在StackOverFlow上閱讀了多個有關已檢查與未檢查異常的文章。 老實說,我仍然不確定如何正確使用它們。
約書亞·布洛赫(Joshua Bloch)在《有效的Java》中說
將檢查的異常用於可恢復的條件,將運行時異常用於編程錯誤(第二版中的項目58)
在特殊情況下使用例外,如果通常期望找不到雇員,那么您可能不應該使用例外。
異常還需要一些運行時開銷,因為它們需要捕獲堆棧跟蹤。
在這種情況下,我將使用Optional
或如果多個雇員可以具有相同的名稱,則返回某種類型的Collection
,如果找不到雇員,則使用空集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.