Spring MVC 通過HandlerExcoptionResolver 處理程序異常,包括處理器異常、數據綁定異常以及處理器執行時發生的異常。
當發生異常時,Spring MVC 會調用 resolverExcoption()方法,並轉到ModelAndView 對應的視圖中,作爲一個異常報告頁面反饋給用戶。
對於異常處理,我們一般分爲局部異常處理和全局異常處理。
1、局部異常處理
局部異常處理,僅能處理指定的 Controller 中的異常,使用@ExceptionHandler 註解實現。
@ExceptionHandler(RuntimeException.class)
public String handlerEecoption(RuntimeException e,HttpServletRequest req){
req.setAttribute("e",e);
return "error";
}
2、全局異常處理
全局異常處理可以使用SimpleMapperExcoptionResolver 來實現,他將異常類名映射爲視圖名,即發生異常時使用對應的視圖報告異常。
在 Spring MVC 配置文件中添加如下代碼:
<!-- 全局異常處理 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!--可以定義多個異常-->
<prop key="java.lang.RuntimeException">error</prop>
</props>
</property>
</bean>