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

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