將controller
中的所有的異常處理都集中到乙個地方進行異常的處理,採用aop的思想將異常處理和業務**分離。
需要使用乙個普通類使用@controlleradvice
和 @exceptionhandler`註解讓其成為乙個異常的處理類,並且需要在配置檔案中聲名元件掃瞄和註解驅動。此類的方法定義規則和處理器方法規則一致,能使用處理器方法中的引數和返回值。
自定義異常類
這裡建立一些繼承自exception
的類即可。這裡給出nameexception
和ageexception
。
定義異常處理類
package exception_handler;
import exception.ageexception;
import exception.nameexception;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.controlleradvice;
import org.springframework.web.bind.annotation.exceptionhandler;
import org.springframework.web.servlet.modelandview;
@controlleradvice
public
class
globalexceptionhandler
/** *
* @param exception : 表示controller中丟擲的那個異常物件。
* @return
*/@exceptionhandler
(value = ageexception.
class
)public modelandview doageexception
(exception exception)
/** * 不指定exceptionhandler的value屬性,則會處理上面宣告處理的異常的其他異常。並且此方法只能存在乙個。
* @param exception
* @return
*/@exceptionhandler
public modelandview dootherexception
(exception exception)
}
配置檔案
宣告元件掃瞄器 和 註解驅動即可。
<
context:component-scan
base-package
="exception_handler"
>
context:component-scan
>
<
mvc:annotation-driven
/>
spring mvc 異常處理
一般來說,程式每出現乙個異常就需要throws 或者try catch語句塊進行處理,這樣處理異常的方法比較少的情況,還體現不出麻煩,如果需要處理異常的方法比較多的情況下,有乙個統一處理異常方法就顯得尤其重要,即所有丟擲的異常都在乙個方法進行處理,這樣可以集中 簡便,如果需要修改異常處理的方式也比較...
springmvc異常處理
1.異常處理思路 系統中異常包括兩類 預期異常和執行時異常runtimeexception,前者通過捕獲異常從而獲取異常資訊,後者主要通過規範 開發 測試的手段減少執行時異常的發生。系統的dao service controller出現異常都通過throws exception向上丟擲,最後由spr...
SpringMVC異常處理
一 springmvc異常處理流程 預期異常,執行時異常 runtimeexception 前者通過捕獲異常從而獲取異常資訊,後者主要通過規範 開發 測試通過手段減少執行異常的發生。系統的dao service controller 出現都通過throw cetion向上跑出,最後由springmv...