1.在controller和service里都寫那些代碼?
Controller,從字面上理解是控制器,所以它是負責業務調度的,所以在這一層應寫一些業務的調度代碼,而具體的業務處理應放在service中去寫,而且service不單純是對於dao的增刪改查的調用,service是業務層,所以應該更切近於具體業務功能要求,所以在這一層,一個方法所體現的是一個可以對外提供的功能,比如購物商城中的生成訂單方法,這里面就不簡單是增加個訂單記錄那么簡單,我們需要查詢庫存,核對商品等一系列實際業務邏輯的處理;
2.在整個項目中什么時候加異常?異常怎么處理?
說到異常,我們應該回想下我們學習異常這一模塊時,異常到底是什么有什么用?一直以來都覺得如果代碼出現了異常是件讓我悲傷的事,因為它意味着我哪里寫錯了,但是現在回想最初的認識都覺得有點好笑,"人,孰能無過",我所理解的異常只是我自己認為造成的錯誤,但殊不知實際中的異常情況是很多的,除了自身造成問題之外,服務器down了,或者數據狀態發生改變,甚至斷網都可能造成異常,所以從另一方面,異常是服務於我們的,是為了我們更好的發現問題解決問題而存在的,在這里,真的由衷的敬佩創造異常機制的前輩,他們過人的智慧真讓人望塵莫及~
回到話題上,那么實際中我們該怎么做呢?個人覺得我們應該從底層的dao一直到action,應對每一層的代碼進行基本的try-catch,有時根據業務需求可能要進行多個catch,由上至下依次捕獲從小到大的各種異常,一般對底層的異常應該往出拋,目的是要通知上一層也就是調用者出現了什么問題,但是對於和用戶直接交互的前台讓用戶看到后台的這些異常信息可是不妥的,所以我們需要將異常信息轉換常用的友好提示給用戶,而對於異常信息應記錄到日志以便對問題進行分析解決。