上一節小博老師給你們介紹了SpringMVC對異常處理的方法之一,使用默認的SimpleMappingExceptionResolver實現類。咱們知道SimpleMappingExceptionResolver類是接口HandlerExceptionResolver的實現類。因此,咱們徹底能夠自定義一個異常解析類來處理異常信息。這一節咱們就詳細瞭解一下HandlerExceptionResolver接口,以及如何自定義實現類。web
先看一下HandlerExceptionResolver接口的源代碼:app
接口定義很簡單,就一個resolveException方法。該方法用來處理Controller中的異常。Exception ex參數即Controller拋出的具體異常對象。返回值類型是ModelAndView,能夠經過它設置異常時顯示的頁面。code
接下來咱們實現一個本身定義的異常處理類:xml
這段代碼的意思是,若是是IOException類型的異常跳轉到ioErrorPage頁面,若是是ClassNotFoundException類型的異常跳轉到notFoundPage頁面。固然,咱們還能夠作更多的處理。好比發送email,保存異常到文件等等。相對於SimpleMappingExceptionResolver能夠更加靈活的進行判斷和處理。對象
固然,還須要將自定義的BwfHandlerExceptionResolver實現類配置到Spring配置文件中。blog
<bean class="com.bwf.BwfExceptionResolver" />接口
注意:若是resolveException返回了ModelAndView,會優先顯示返回值中的頁面。若是,resolveException返回null,而且在web.xml中配置了error-page的500狀態碼對應的頁面,則會顯示該頁面。 ip