我已經找過答案這個問題,我發現了以下建議:返回null或拋出異常一次
- 如果你總是希望找到一個值,則拋出如果缺失則爲異常。這個例外意味着有問題。如果該值可能丟失或存在,並且兩者都對應用程序邏輯有效,則返回null。
- 只有在發生異常時纔會拋出異常。如果預期該對象的行爲不存在,則返回null。
但是我應該如何解釋他們在我的(這麼隨便)情況: 我的web應用程序控制器接收請求顯示詳細信息具有一定的ID的用戶。控制器要求服務層獲取用戶,然後服務返回該對象(如果找到)。如果不是,則發送到「默認」位置的重定向。
如果有人在請求URL中傳遞了無效的用戶標識,該怎麼辦?我是否應該將其視爲「預期的行爲」並將null返回給控制器,或者我應該將其稱爲「問題或意外行爲」,從而在服務方法內引發異常並捕獲到控制器中?
從技術上來說,畢竟這並不是什麼大的差別,但我想按照標準召集的方式來做正確的做法。在此先感謝您的任何建議。
編輯: 我認爲,由應用程序生成的URL是有效的和現有的 - 當用戶點擊時,應該找到具有證書編號的用戶。我想知道如何處理這種情況,當用戶嘗試通過在瀏覽器的地址欄中手動輸入URL來訪問具有錯誤(不存在)用戶標識的URL時。