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