第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于Service層異常封裝的問(wèn)題

關(guān)于Service層異常封裝的問(wèn)題

冉冉說(shuō) 2019-04-11 14:15:54
service層應(yīng)該是拋出自定義異常,還是通用的Exception?比如:前臺(tái)需要code、message、datacode:返回特定編碼,比如0表示成功,1表示失敗message:失敗時(shí)返回錯(cuò)誤信息data:如果是查詢(xún),用戶(hù)存放數(shù)據(jù)現(xiàn)在自定義一個(gè)異常,CustomizeException,可以拋出code和message。最好的用法是不是應(yīng)該在dao層拋出Exception,service層catch之后throw出新的自定義異常CustomizeException,給相應(yīng)異常信息加上描述。controller就直接返回異常中的code和message給前臺(tái)。如果有描述不到位的地方,敬請(qǐng)見(jiàn)諒。
查看完整描述

4 回答

?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

我習(xí)慣的做法是:

  1. 對(duì)于DAO層查詢(xún)不到結(jié)果的情況,返回NULL。對(duì)于連接失敗等內(nèi)部問(wèn)題,拋異常

  2. Service層需要檢查NULL,然后返回NotFoundException。連接失敗等異常不管,直接往上拋

  3. 在Controller層面,通過(guò)Spring MVC的Controller Advice統(tǒng)一處理異常。根據(jù)不同的異常轉(zhuǎn)成合理的Http status和message返回給客戶(hù)端


查看完整回答
反對(duì) 回復(fù) 2019-04-23
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

dao是與數(shù)據(jù)庫(kù)打交道的,關(guān)異常什么事,所有的業(yè)務(wù)異常都應(yīng)該在service層拋出,
舉個(gè)列子,用戶(hù)名不能重復(fù),你dao一個(gè)findByName(String name)方法,這個(gè)方法只是查詢(xún)數(shù)據(jù)改名稱(chēng)是否存在,難道還要把你業(yè)務(wù)綁定到dao層?

查看完整回答
反對(duì) 回復(fù) 2019-04-23
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

dao層不需要拋出異常,應(yīng)該在service層拋出異常,可以是自定義的異常,然后在controller中定義exception handler統(tǒng)一處理。


查看完整回答
反對(duì) 回復(fù) 2019-04-23
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

我認(rèn)為最合理的做法:
1、dao層不捕獲異常、不拋出異常:spring框架將底層的數(shù)據(jù)庫(kù)checked異常封裝成unchecked異常了
2、service層捕獲異常,并拋出自定義unchecked異常,異常中不定義狀態(tài)碼:checked異常默認(rèn)情況事務(wù)不會(huì)回滾
3、controller層捕獲異常,并拋出自定義異常,異常類(lèi)中定義需要返回的HTTP狀態(tài)碼
4、exceptionHandler中統(tǒng)一處理所有異常

但是,這樣會(huì)造成controller比較臃腫,
所以,很多項(xiàng)目使用偷懶的辦法,service中拋出的異常定義狀態(tài)碼,controller不捕獲保持代碼簡(jiǎn)潔,由exceptionHandler統(tǒng)一處理


查看完整回答
反對(duì) 回復(fù) 2019-04-23
  • 4 回答
  • 0 關(guān)注
  • 2038 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)