最近使用spring mvc開發乙個web系統,發現在controller裡發生未捕獲異常時不出日誌。
分析dispatcherservlet,初始化handlerexceptionresolvers
/**
* initialize the strategy objects that this servlet uses.
* may be overridden in subclasses in order to initialize
* further strategy objects.
*/initmultipartresolver(context);
initlocaleresolver(context);
initthemeresolver(context);
inithandleradapters(context);
// 初始化異常處理支援器
inithandlerexceptionresolvers(context);
initrequesttoviewnametranslator(context);
initviewresolvers(context);
}// 進入初始化處理方法,具體內容就不貼了,主要是先到上下文中搜尋我們自己定義的exceptionresolvers,如果沒有自定義的resolvers,從預設配置中讀取。
// 從預設策略中取得預設配置,從dispatcherservlet.properties檔案中取得相關的配置策略,但是在spring2.5的mvc jar包中properties檔案中沒有handlerexceptionresolver的預設配置,返回乙個emptylist給handlerexceptionresolvers
分析dispatcherservlet,分發處理請求
// 從dispatch方法中看到,系統對請求進行具體的邏輯處理部分被catch住了一次exception,然後會使用servlet持有的exceptionresolver進行處理protected void dodispatch(httpservletrequest request, httpservletresponse response) throws exception {
…………………………………………………………………………
spring mvc 異常處理
一般來說,程式每出現乙個異常就需要throws 或者try catch語句塊進行處理,這樣處理異常的方法比較少的情況,還體現不出麻煩,如果需要處理異常的方法比較多的情況下,有乙個統一處理異常方法就顯得尤其重要,即所有丟擲的異常都在乙個方法進行處理,這樣可以集中 簡便,如果需要修改異常處理的方式也比較...
springmvc異常處理
1.異常處理思路 系統中異常包括兩類 預期異常和執行時異常runtimeexception,前者通過捕獲異常從而獲取異常資訊,後者主要通過規範 開發 測試的手段減少執行時異常的發生。系統的dao service controller出現異常都通過throws exception向上丟擲,最後由spr...
SpringMVC異常處理
一 springmvc異常處理流程 預期異常,執行時異常 runtimeexception 前者通過捕獲異常從而獲取異常資訊,後者主要通過規範 開發 測試通過手段減少執行異常的發生。系統的dao service controller 出現都通過throw cetion向上跑出,最後由springmv...