springMVC提供的異常處理主要有兩種方式,一種是直接實現本身的HandlerExceptionResolver,另外一種是使用註解的方式實現一個專門用於處理異常的Controller——ExceptionHandler。java
一、實現本身的HandlerExceptionResolver,HandlerExceptionResolver是一個接 口,springMVC自己已經對其有了一個自身的實現——DefaultExceptionResolver,該解析器只是對其中的一些比較典型的異常 進行了攔截處理。web
上述的resolveException的第4個參數表示對哪一種類型的異常進行處理,若是想同時對多種異常進行處理,能夠把它換成一個異常數組。spring
定義了這樣一個異常處理器以後就要在applicationContext中定義這樣一個bean對象,如:數組
二、使用@ExceptionHandler進行處理mvc
使用@ExceptionHandler進行處理有一個很差的地方是進行異常處理的方法必須與出錯的方法在同一個Controller裏面app
如:ide
這裏在頁面上訪問test方法的時候就會報錯,而擁有該test方法的Controller又擁有一個處理該異常的方法,這個時候處理異常的方法就會被調用post
當發生異常的時候,上述兩種方式都使用了的時候,第一種方式會將第二種方式覆蓋ui
http://gaojiewyh.iteye.com/blog/1297746this
最近使用spring mvc開發一個web系統,發如今controller裏發生未捕獲異常時不出日誌。
分析DispatcherServlet,初始化handlerExceptionResolvers
分析DispatcherServlet,分發處理請求
http://fancyboy2050.iteye.com/blog/1300037
用spring mvc作了個項目,可是出現異常的狀況下竟然沒有日誌輸出,而後各類嘗試。。。正如上面介紹的:設置日誌輸出級別,不定義則默認不輸出警告等錯誤日誌信息!!【固然,try catch的異常沒問題】 敬請留意。