我想知道我應該如何處理 save 方法。讓我們考慮一下我想注冊新用戶的情況。首先,我需要檢查是否有具有該 ID 或登錄名的用戶。如果我找不到任何人,我可以創建一個新的人并使用 Spring Data 中的 save 方法。當我發現有人有這樣的登錄名時怎么辦?我應該拋出異常嗎?我不喜歡它們,對我來說,有時就像逃避問題。返回 null 而不是對象也不是一個好的選擇,不是嗎?這是我的問題,我想以最溫和的方式解決。返回什么以及如何處理這種情況。也許例外是必要的?然后就在我的控制器里處理一下就可以了。我希望你能給我建議。我寧愿向有經驗的人尋求提示和幾句話,而不是從互聯網上的大多數頁面獲得普通的解決方案。感謝:D
1 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
異常字面意思是“由于正常工作流之外的情況,我無法正常完成此操作”,是何時拋出AccountAlreadyExists
異常的完美示例。您不是在“逃跑”,而是在通知應用程序的更高層它必須處理該問題。作為一個思想實驗:如果你有不止一個原因導致某件事失敗怎么辦?您如何區分(重復帳戶)和(禁止域名)?null
null
請注意,在這種情況下,您肯定應該有類似 a 的東西,UserAccountService
它的職責是執行諸如“無重復帳戶”之類的規則,這將是實際調用userRepository.save(newUser)
.
如果您使用 Spring MVC 視圖,那么您需要捕獲控制器中的異常并將用戶發送到錯誤頁面。如果您使用 JSON API,那么您可能希望讓異常轉義以將錯誤返回給客戶端;考慮用 或 類似的注釋你的異常類@ResponseStatus(UNPROCESSABLE_ENTITY)
。
添加回答
舉報
0/150
提交
取消