最近用Struts開發(fā)web程序時(shí),遇到一個(gè)異常處理的問題。假設(shè)有一個(gè)業(yè)務(wù)邏輯:查詢某用戶進(jìn)行信息修改的所有的日志記錄<每修改一次,在DB中生成一條記錄>。在查詢前,還要判斷該用戶是否是本系統(tǒng)生成的用戶<有一張表記錄著所有的合法用戶的信息>。
終端用戶的需求是:如果查詢的用戶不是合法用戶,要求提示:“該用戶不是合法用戶”;如果用戶沒有進(jìn)行過信息的修改,要求提示:“該用戶沒有進(jìn)行過信息修改”。
在struts的action類中,可以將提示信息封裝到ActionMessage中,但是,用戶是否合法只能在Dao層中才能得到確定,如果用戶不在合法用戶表中,則可確定該用戶不是合法用戶。
我怎樣才能將“用戶不是合法用戶”從Dao層,傳到domain層,最后在Action中進(jìn)行處理。目前我想到的方法是用Exception來(lái)處理。當(dāng)用戶不是合法用戶時(shí),方法就拋出一個(gè)NotExistUserException,然后在Action中進(jìn)行處理。
這種情況下,大家都是怎么處理的,怎樣處理才比較的合理,請(qǐng)各位指點(diǎn)下思路,多謝了!
========================== 關(guān)鍵還是需要學(xué)習(xí)一下Evans DDD.
>用戶是否合法只能在Dao層中才能得到確定,如果用戶不在合法用戶表中,則可確定該用戶不是合法用戶
這其實(shí)是一個(gè)業(yè)務(wù)規(guī)則篩選的問題,一定要記住Dao層只是對(duì)象的“睡覺的床”,所以,'用戶是否合法只能在Dao層中才能得到確定'這句話不夠準(zhǔn)確,應(yīng)該說 所有合法用戶可以從Dao層得知,但是某個(gè)用戶是否合法用戶需要在業(yè)務(wù)層實(shí)現(xiàn)。
|