目的:將校驗失敗的錯誤資訊在客戶端顯示出來。
實現:新建乙個全域性異常***,攔截繫結異常bindexception,輸出錯誤資訊,並且優化返回資訊的過程。
globleexceptionhandler 類
@controlleradvice
@responsebody
public
class
globleexceptionhandler
else
if(e instanceof
bindexception
)else
}}
至此可以讓客戶端顯示校驗錯誤資訊提示了。
正常專案處理異常都是拋異常,不是service層返回乙個故障資訊的物件,controller層再把資訊返回給客戶端。有異常直接在service層就拋了。
建立乙個異常物件
public
class
globalexception
extends
runtimeexception
public codemsg getcodemsg()
}
service層拋異常,而不是返回乙個故障資訊物件codemsg
@service
public
class
miaoshauserservice
public codemsg login
(loginentity loginentity)
string mobile = loginentity.
getmobile()
; string formpass = loginentity.
getpassword()
; miaoshauser user =
getbyid
(long.
parselong
(mobile));
if(user==null)
string dbpass =user.
getpassword()
; string saltdb = user.
getsalt()
; string calcpass = md5util.
formtodb
(formpass,saltdb);if
(!calcpass.
equals
(dbpass)
)return codemsg.success;
}}
controller層的**極大簡化,不需要寫**返回錯誤資訊了
@controller
("login"
)public
class
logincontroller
@responsebody
("/do_login"
)public result
dologin
(@valid loginentity loginentity)
}
秒殺專案學習筆記 物件快取
頁面快取,url快取快取時間短,內容多,適合變化不大的頁面。物件快取,只快取乙個物件,時間長,經常設定為0,永久有效。與頁面快取的最大區別是,當乙個物件快取發生了變動,與這個物件快取有關的快取都要更新,否則會出現資料不一致。比如,更新了更改了密碼,那麼就要取更新token這個快取。建立乙個查詢登入物...
學習筆記 異常處理
語法上正確的,但在嘗試執行時,可能會引發嚴重錯誤。1 0 traceback most recent call last file line 1,in 1 0 zerodivisionerror division by zero常見內建異常 try do samething except tuple...
python學習筆記 異常處理
try 多個except else finally語句 try 塊是此語句的主要動作,嘗試執行的 except分句捕獲且處理try 塊內引發的異常,else分句是try沒有發生異常時要執行的處理器。finally語句不管異常是否發生都會去執行的,如果沒有異常發生,執行完try 塊後執行finally...